Activity lifecycle là chuỗi callback hệ thống gọi khi một màn hình được tạo, hiện ra, mất focus, bị che và bị huỷ:
onCreate(): khởi tạo một lần —setContent/setContentView, lấy ViewModel, đọcsavedInstanceState.onStart(): Activity hiện ra (visible).onResume(): ở foreground và nhận tương tác — nơi bật camera, sensor.onPause(): mất focus (dialog hệ thống, multi-window). Chỉ làm việc nhẹ, nhanh.onStop(): không còn thấy — dừng việc nặng, lưu dữ liệu.onDestroy(): bị huỷ, dofinish()hoặc do configuration change (xoay màn hình, đổi ngôn ngữ).
Thứ tự hay bị hỏi:
- Mở B từ A: A.onPause → B.onCreate/onStart/onResume → A.onStop.
- Xoay màn hình: onPause → onStop → onDestroy → onCreate → onStart → onResume (Activity được tạo mới hoàn toàn).
Để giữ dữ liệu qua xoay màn hình, đặt state trong ViewModel; state UI nhỏ cần sống qua cả process death thì dùng onSaveInstanceState()/SavedStateHandle. Logic phụ thuộc vòng đời nên đặt trong LifecycleObserver hoặc repeatOnLifecycle thay vì rải vào từng callback.
Lưu ý: onDestroy() không được đảm bảo gọi khi hệ thống kill process đang ở nền — đừng dựa vào nó để lưu dữ liệu quan trọng. Giữ tham chiếu Activity trong object sống lâu (singleton, static) sẽ gây memory leak.