Tìm hiểu vòng đời của 1 ứng dụng Android – Activity Lifecycle

Tìm hiểu vòng đời của 1 ứng dụng Android – Activity Lifecycle


Là 1 lập trình viên Android, các bạn không thể không biết về vòng đời của ứng dụng Android. Hôm nay mình sẽ giới thiệu cho các bạn hiểu hơn về vòng đời của 1 ứng dụng Android từ lúc khởi động đến khi kết thúc ứng dụng.

Android có cơ chế quản lý các process theo chế độ ưu tiên (priority). Các process có độ ưu tiên thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên.

Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của tiến trình ứng dụng không được điều khiển trực tiếp bởi chính nó. Thay vào đó, nó được xác định bởi hệ thống qua một kết hợp của:

– Những phần của ứng dụng mà hệ thống biết đang chạy.

– Những phần đó quan trọng như thế nào đối với người dùng.

– Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống.

Xem thêm: Khóa học lâp trình android ở đâu

1. Các loại tiến trình (process) của Android

Để hiểu được vòng đời của 1 ứng dụng Android, trước tiên các bạn phải biết được các loại tiến trình. Có 5 loại tiến trình như sau.

  • Foreground process: là process của ứng dụng hiện thời đang được người dùng tương tác.
  • Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng (onPaused() của activity được gọi).
  • Service process: là Service đang running.
  • Background process: là process của ứng dụng mà các activity của nó ko hiển thị với người dùng (onStoped() của activity được gọi).
  • Empty process: process không có bất cứ 1 thành phần nào active.

Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process.

2. Vòng đời của ứng dụng Android.

Đầu tiên bạn phải hiểu trong mỗi ứng dụng sẽ có một hoặc nhiều Activity (bạn hiểu đại khái là các màn hình tương tác). Mỗi một Activity này sẽ có một vòng đời riêng độc lập hoàn toàn với các Activity khác. Mỗi một Activity muốn được triệu gọi trong ứng dụng thì bắt buộc nó phải được khai báo trong manifest

Tiếp theo mình sẽ nói về Activity Stack: bên trong hệ thống các activity được quản lý như một activity stack. Khi một Activity mới được start, nó được đặt ở đỉnh của stack và trở thành activity đang chạy (running activity), các activity trước sẽ tạm dừng và ở bên dưới activity mới và sẽ không thấy trong suốt quá trình activity mới tồn tại. Nếu người dùng nhấn nút Back thì activity kết tiếp của stack sẽ di duyển lên và trở thành active (đó chính là cơ chế LIFO – LAST IN FIRST OUT)

26

Với mỗi Activity thường vòng đời có 4 trạng thái sau:

Running (đang kích hoạt): Activity đang hiển thị trên màn hình (foreground). Activity này tập chung vào những thao tác của người dùng trên ứng dụng

Paused (tạm dừng): Activity được tạm dừng, tuy vẫn hiển thị (visible) nhưng không thể tương tác (lost focus). Có nghĩa là một activity mới ở trên nó, nhưng không bao phủ đầy màn hình. Một activity tạm dừng là còn sống, nhưng có thể bị kết thúc bởi hệ thống trong trường hợp thiếu vùng nhớ.

Stopped (dừng – không phải Destroyed): Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop. Nó vẫn còn trạng thái và thông tin thành viên trong nó. Người dùng không thấy nó và thường bị loại bỏ khi hệ thống cần vùng nhớ cho các tác vụ khác.

Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó.

27

Vòng đời của Activity được thể hiện theo biểu đồ dưới đây.

Trong vòng đời của ứng dụng Android bạn cần phần biệt các loại sau:

Entire lifetime: Từ phương thức onCreate( ) cho tới onDestroy( ). Chính là toàn bộ vòng đời của ứng dụng
Visible liftetime: Từ phương thức onStart( ) cho tới onStop( ). Trong trường hợp này ta vẫn có thể thấy màn hình Activity (có thể tương tác khi nó là foreground, không tương tác được khi nó không phải foreground như đã giải thích ở trên).
Foreground lifetime: Từ phương thức onResume( ) cho tới onPause( ). Trong suốt thời gian này Activity luôn nằm ở trên cùng và Ta có thể tương tác được với nó.

Các hàm thực thi:

– onCreate(…): hàm này được gọi khi lớp Activity được khởi tạo, dùng để thiết lập giao diện ứng dụng và thực thi những thao tác cơ bản.
– onStart(): hàm này được gọi khi lớp ứng dụng xuất hiện trên màn hình.
– onResume(): hàm được gọi ngay sau OnStart hoặc khi người dùng focus ứng dụng, hàm này sẽ đưa ứng dụng lên top màn hình.
– onPause(): hàm được gọi khi hệ thống đang focus đến 1 activity trước đó.
– onStop(): hàm được gọi khi một activity khác được khởi động và focus.
– onRestart(): được gọi khi ứng dụng chuyển sang onStop(), nhưng muốn khởi động lại bằng onStart().

Vậy là các bạn đã hiểu được vòng đời của 1 ứng dụng Android. Các bạn sẽ dần hiểu sâu hơn về nó trong quá trinh các bạn code. Chúc các bạn học tốt.

Gợi ý xem thêm:

Đánh giá bài hát

Từ khóa: Tìm lời bài hát, Tìm bài hát theo lời, Lời bài hát
Cùng Ca sĩ Bài hát mới nhất
Đăng ký gói MAX200 Vinaphone thoải mái xem phim, lướt Facebook

Đăng ký gói MAX200 Vinaphone thoải mái xem phim, lướt Facebook

Với 15GB data tốc độ cao, khách hàng có thể thả ga đăng nhập Internet xem phim, đọc báo, tán gẫu với bạn bè… Nhu cầu học tập, giải trí trên các thiết bị di động là nhu cầu cần thiết trong thời đại công nghệ số....

175 0
Đăng ký gói cước 4G Vinaphone 1 ngày giá 10.000đ nhận 2GB

Đăng ký gói cước 4G Vinaphone 1 ngày giá 10.000đ nhận 2GB

VinaPhone hiện cung cấp rất nhiều gói cước 4G nhằm đáp ứng nhu cầu đa dạng của khách hàng. Một trong những gói data mới nhất được VinaPhone đưa ra là gói 4G tính theo ngày D2. Gói cước này được rất nhiều khách hàng lựa chọn...

263 0
Đăng ký gói cước VD2K Vinaphone 20.000đ/ngày nhận 1GB Data

Đăng ký gói cước VD2K Vinaphone 20.000đ/ngày nhận 1GB Data

Chỉ 1 tin nhắn đơn giản và duy nhất khi đăng ký gói VD2K Vinaphone với giá chỉ 2.000 đồng bạn sẽ sở hữu ngay ưu đãi miễn phí 100% chi phí gọi thoại nội mạng Vinaphone và 1GB data tốc độ cao sử dụng 3G Vinaphone, 4G Vinaphone truy cập...

245 0
Sáp vuốt tóc Nitro Wax đến từ Singapore có gì nổi bật ?

Sáp vuốt tóc Nitro Wax đến từ Singapore có gì nổi bật ?

Hiện nay có rất nhiều loại sáp vuốt tóc tạo kiểu dành cho nam giới đang được bán trên thị trường từ những loại bình dân đến cao cấp. Trong số đó có sản phẩm sáp vuốt tóc Nitro Wax đến từ Singapore thuộc phân khúc tầm...

806 0
Mercedes GLC có nhiều ưu điểm hơn so với Mercedes GLK điểm gì ?

Mercedes GLC có nhiều ưu điểm hơn so với Mercedes GLK điểm gì ?

Tìm hiểu về Mercedes GLC và Mercedes GLk So sánh giữa Mercedes GLC và Mercedes GLK Theo tuyên bố chính thức của hãng Mercedes-Benz Việt Nam, thì từ tháng 7/2015 Mercedes GLK sẽ được tạm ngưng sản xuất, và thay vào đó sẽ là mẫu xe ô...

1726 0

Sản phẩm nào trị dau da day tốt nhất?

Có lẽ điều mà mỗi chúng ta hi vọng trong chữa dau bao tu nói riêng và chữa 1 số bệnh lý khác nhìn chung đều là tìm một loại nào chữa trị hợp lý, thêm vào đó là mau chóng nhất. bởi vì chẳng 1 ai...

567 0
Làm thế nào để sử dung 16 bộ lọc của Instagram?

Làm thế nào để sử dung 16 bộ lọc của Instagram?

Imstagram bạn sẽ bất ngờ với bộ lọc và hiệu ứng ảnh mà ứng dụng này mang lại. Giúp bạn có thể xử lý ảnh nhanh chóng, khiến bức ảnh, video của bạn trở nên độc đáo và lạ mắt hơn. Bạn đã biết cách sử dụng...

1283 0
Đăng bình luận