Lập trình Android — August 24, 2016 at 3:33 am

Vòng đời của ứng dụng Android như thế nào?

by

Bài viết này chúng tôi xin chia sẻ với các bạn về vòng đời của ứng dụng Android là như thế nào. Chúng ta hãy cùng nhau tìm hiểu nhé các bạn.

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.

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

1. Foreground process: là process của ứng dụng hiện thời đang được người dùng tương tác.

2. 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).

3. Service process: là Service đang running.

4. 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).

5. 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.

Chu kỳ sống của ứng dụng Android (Android Activity Life Cycle):

Chu kỳ sống thành phần: các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt đầu khởi tạo và đến thời điểm kết thúc, đôi lúc chúng có thể là active
(visible hoặc invisible) hoặc inactive.

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.

ActivityStack_thumb

Activity bao gồm 4 trạng thái (state):

active (running): 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: 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ớ.

stop: 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 đó.

Biểu đồ miêu tả Activity state

activity_lifecycle

Vòng đời của Activity:

Entire lifetime: Từ phương thức onCreate( ) cho tới onDestroy( )
Visible liftetime: Từ phương thức onStart( ) cho tới onStop( )
Foreground lifetime: Từ phương thức onResume( ) cho tới onPause( )

Khi xây dựng Actitvity cho ứng dụng cần phải viết lại phương thức onCreate( ) để thực hiện quá trình khởi tạo. Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình.

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().

Trên đây chúng tôi đã giới thiệu với các bạn về vòng đời của ứng dụng Android. Tuy đây là những kiến thức cơ bản nhưng sẽ giúp ích cho các bạn đấy. Xin cảm ơn đã theo dõi!

Nguồn: code5s

Leave a Comment

Your email address will not be published. Required fields are marked *