The Android Lifecycle cheat sheet - Phần 2: Multiple Activities
Trong loạt bài: Phần 1: Activities - Single activity lifecycle Phần 2: Multiple activities - Navigation và backstack (Bài này) Phần 3: Fragments - Vòng đời Activity và Fragment Lưu ý rằng, khi hiển thị vòng đời cho multiple components (acitivities, fragment, vv..) trong 1 sơ đồ, các ...
Trong loạt bài:
Phần 1: Activities - Single activity lifecycle
Phần 2: Multiple activities - Navigation và backstack (Bài này)
Phần 3: Fragments - Vòng đời Activity và Fragment
Lưu ý rằng, khi hiển thị vòng đời cho multiple components (acitivities, fragment, vv..) trong 1 sơ đồ, các sự kiện xuất hiện bên cạnh nhau song song. Trọng tâm thực hiện có thể chuyển từ một nhóm sự kiện song song sang một sự kiến khác bất kỳ lúc nào, do đó, thứ tự các cuộc gọi giữa các nhóm sự kiện song song không được đảm bảo. Tuy nhiên, thứ tự bên trong một nhóm được đảm bảo
Các trường hợp sau đây không áp dụng cho các activities và task có chế độ khởi chạy tùy chỉnh hoặc mối quan hệ công việc được xác định. Để biết thêm thông tin, hãy xem Task và BackStack trên website Android Developer.
Backstack - Kịch bản 1: Điều hướng giữa các Activities
Trong kịch bản này, khi một Activity mới được started, Activity 1 bị STOPPED (Nhưng không phải destroyed), tương tự như người dùng điều hướng đi (như là nhấn nút Home)
Khi nhấn nút Back vật lý trên máy, Activity 2 bị destroyed và finished.
Quản lý trạng thái
Lưu ý rằng onSaveInstanceState được gọi, nhưng onRestoreInstanceState thì không. Nếu có 1 config thay đổi khi Activity 2 đang được hiển thị, Activity 1 sẽ bị destroyed và chỉ được tạo lại khi nó được focus lại. Đó là lý do tại sao lưu 1 instance của trạng thái là quan trọng
Nếu hệ thống kills process của app để tiết kiệm tài nguyên, đây là một tình huống khác trong đó trạng thái cần được khôi phục.
BackStack - Kịch bản 2: Các Activities trong BackStack với các thay đổi cấu hình
Quản lý trạng thái
Lưu trạng thái không chỉ quan trọng đối với Activity ở foreground. Tất cả activities trong stack cần phải khôi phục trạng thái sau khi 1 config thay đổi để tạo lại UI của nó.
Ngoài ra, hệ thống có thể kill process của app bất cứ lúc nào, do đó bạn nên chuẩn bị khôi phục trạng thái trong mọi tình huống.
BackStack - Kịch bản 3: Process của App bị killed
Khi hệ điều hành Android cần tài nguyên, nó sẽ giết chết ứng dụng trong background.
/pictures/picfullsizes/2018/09/22/ylz1537578951.png
Quản lý trạng thái
Lưu ý rằng trạng thái của backstack được lưu nhưng, để sử dụng hiệu quả tài nguyên, các activities chỉ được khôi phục khi chúng được tạo lại.
Đọc thêm
Who lives and who dies? Process priorities on Android
Bài tiếp theo
The Android Lifecucle cheat sheet - Phần 3: Fragments