Android Lifecycle



  • Android có rất nhiều các components như Activity, Fragment, Service, BroadCastReceiver ... Mỗi thành phần đều có vòng đời của riêng chúng và có những thành phần mà vòng đời của chúng liên quan đến nhau. Việc hiểu được lifecycle của các components trong android sẽ giúp tránh được các lỗi thuường gặp.

    Vòng đời của một Activity

    App is finished and restarted

    Trường hợp này xảy ra khi người dùng ấn vào back button hoặc ứng dụng gọi Activity.finish()

    • method onSaveInstanceState sẽ không được gọi vì Activity lúc này đã finished
    • Khi ứng dụng được mở lại thì hàm onCreate sẽ nhận đối số Bundle = null.

    User navigates away

    Khi người ấn home button hoặc lựa chọn mở một ứng dụng khác

    • Method onSaveInstanceState sẽ được gọi để lưu trạng thái của ứng dụng để sử dụng khi hệ thống kill Activity.

    Configuration changes

    Khi người dùng quay màn hình hoặc screen size bị thay đổi

    • Activity bị huỷ và trạng thái của activity được lưu lại khi tạo một instance mới . Hệ thống gọi 2 hàm onSaveInstanceState và onRestoreInstanceState.
    • Hàm onCreate được gọi khi activity khởi tạo lại có Bundle != null

    App is paused by the system

    Một thành phần của ứng dụng khác hiển thị lên trên ứng dụng đang chạy như dialog request permission hay share dialog (Trường hợp show dialog của ứng dụng đang chạy hay xem notification từ menu không thuộc trường hợp này)

    Multiple activities

    Navigating between activities

    Trường hợp start một Activity mới và người dùng ấn back button để destroy activity 2 .

    • Hệ thống gọi hàm onSaveInstanceState nhưng không gọi onRestoreInstanceState

    Activities in the back stack with configuration changes

    • Tất cả các activity trong back stack đều cần restore state trong trường hợp configuration change

    App’s process is killed

    Trường hợp khi hệ thống cần tài nguyên, hệ thống sẽ kill apps trong background

    • Tất cả các activity trong back stack đều được lưu lại trạng thái .

    Tham khảo:


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.