Tìm hiểu về Activity trong Android

Activity trong Android là một thành phần ứng dụng cung cấp một màn hình để người dùng có thể tương tác chẳng hạn như quay số điện thoại, chụp ảnh, đọc báo… và mỗi ứng dụng có thể sẽ có một hoặc nhiều Activity.

Như ứng dụng Tra Cứu Thị Trường bạn thấy rằng ứng dụng này có khá nhiều màn hình và mỗi màn hình là một Activity. Ứng dụng Tra Cứu Thị Trường bao gồm màn hình chính, màn hình hiển thị giá vàng, màn hình hiển thị giá nông sản, màn hình hiển thị giá điện…

Tìm hiểu về Activity trong Android

1. Trạng thái của một Activity trong android

Activity trong Android giúp hiển thị giao diện ứng dụng và xử lý các tương tác từ người dùng. Activity bao gồm 4 trạng thái là Running, Paused, Stopped hay Killed.

  • Running: nếu Activity ở trên cùng của ngăn xếp (trên cùng của màn hình) thì Activity đó đang ở trạng thái running (đang chạy).
  • Paused: nếu Activity vẫn hiển thị tuy nhiên một phần Activity đã bị che khuất bởi một Activity khác thì Activity đó đang ở trạng thái paused (tạm dừng). Khi ở trạng thái paused thì Activity có thể bị xóa bỏ bởi hệ thống khi thiết bị thiếu bộ nhớ.
  • Stopped: nếu Activity đã bị che khuất toàn màn hình bởi một Activity khác thì Activity đó đang ở trạng thái stopped (đã dừng). Activity ở trạng thái stopped vẫn giữ được tất cả trạng thái và thông tin nhưng có thể bị xóa bỏ bởi hệ thống khi thiết bị thiếu bộ nhớ.
  • Killed: nếu Activity bị dừng bởi hệ thống khi gọi hàm finish() thì Activity đó đang ở trạng thái killed (chấm dứt), nếu như Acitivty đó hiển thị lại thì sẽ được khởi tạo lại như ban đầu.

2. Vòng đời Activity trong Android

Tìm hiểu về Activity trong Android

Mỗi Activity sẽ có một vòng đời riêng, vòng đời của Activity trong Android được mô tả như sau:

  • onCreate(): được gọi khi Activity mới được tạo, lúc này hệ thống có thể nạp giao diện, khởi tạo các biến, tải dữ liệu…
  • onStart(): được gọi ngay trước khi Activity hiển thị lên màn hình.
  • onResume(): được gọi ngay trước khi Activity bắt đầu tương tác với người dùng.
  • onPause(): được gọi khi sắp kích hoạt một Activity khác, Activity có thể được kích hoạt lại khi gọi onResume() hoặc Activity bị ẩn đi khi gọi OnStop().
  • onStop(): được gọi khi Activity bị ẩn đi, Activity có thể được kích hoạt lại khi gọi onRestart() hoặc gọi onDestroy() để hủy Activity.
  • onDestroy(): được gọi trước khi Activity bị phá hủy.
  • onRestart(): được gọi khi Activity kích hoạt lại sau khi dừng.

3. Tác vụ (task) và ngăn xếp (stack) trong Android

Tác vụ (task) là một tập hợp gồm nhiều Activity mà người dùng tương tác với ứng dụng khi thực hiện một công việc nhất định. Các Activity sẽ được sắp xếp trong một ngăn xếp (stack) được gọi là Back stack.

Back Stack giống như một tủ đựng đồ khi mà món đồ đầu tiên khi bỏ vào tủ sẽ nằm dưới đáy ngăn, những món đồ tiếp theo sẽ nằm đè lên nhau. Và khi bạn muốn lấy một món đồ ra từ tủ đựng đồ thì sẽ lấy từ trên xuống dưới, nghĩa là cái nào bỏ vào sau sẽ lấy ra trước.

Tìm hiểu về Activity trong Android

Trong hệ thống Android sẽ quản lý các Activity dưới dạng Stack với nguyên tắc là FILO (First In, Last Out) cụ thể nhu ví dụ trên ta thấy:

  • Khi Acitvity 1 chuyển sang Acitvity 2 thì Acitvity 1 bị dừng nhưng hệ thống giữ lại trạng thái của nó (chẳng hạn như vị trí cuộn hay đoạn văn bản được nhập vào biểu mẫu). Nếu người dùng nhấn nút quay lại (Back) khi đang trong Acitvity 2 thì Acitvity 1 sẽ tiếp tục với trạng thái được khôi phục.
  • Nếu như ngăn xếp trống không còn phần tử nào thì xem như bạn đã thoát khỏi ứng dụng.
  • Nếu như đang ở trong một Activity nào đó mà người dùng nhấn nút trang chủ (Home) thì Activity hiện tại bị dừng và tác vụ của nó sẽ đưa xuống dưới nền. Hệ thống sẽ giữ lại trạng thái của mọi hoạt động trong tác vụ. Nếu sau đó người dùng tiếp tục tác vụ thì Activity ở trên cùng của ngăn xếp sẽ được khôi phục lại trạng thái.

Lời kết: Cám ơn bạn đã theo dõi bài viết tìm hiểu về Activity trong Android, ngoài ra các bạn có thể xem thêm các nội dung khác trong chuyên mục lập trình Android được chia sẻ với Team Việt Dev.

(Tác giả: Team Việt Dev)

Bình luận