重寫 onSaveInstanceState(Bundle) 保存數據,手動銷毀 Activity(如按 Back 鍵或 finish()),再次啟動時 onCreate(Bundle) 參數為 null。
onSaveInstanceState 不保證被調用。僅在以下情況觸發:
手動調用 finish() 或按 Back 鍵屬于「用戶主動關閉」,系統認為無需保存狀態,直接銷毀,不調用 onSaveInstanceState,再次啟動屬于冷啟動,Bundle 為 null。
| 數據類型 | 存儲方案 |
|---|---|
| 臨時 UI 狀態(滾動位置、輸入框文本) | onSaveInstanceState / ViewModel |
| 用戶偏好設置、登錄 Token | SharedPreferences / DataStore |
| 業務數據(草稿、購物車) | 本地數據庫 Room / 文件 / 服務器同步 |