Activity狀態恢復
Android Activity具備儲存狀態和恢復狀態的功能。這個功能可以讓我們在Activity被回收之前儲存狀態,以便在使用者切換回來時,恢復狀態。那麼狀態恢復的機制是什麼呢?
Activity的啟動是通過Intent完成的(有一種情況:即使用者通過返回按鈕回退到之前被回收的Activity,這個Activity是不是通過Intent啟動的,還不確定),但是Intent是沒有攜帶任何狀態恢復的資訊的。所以,有兩個疑問產生:
1. Activity的狀態存放在哪裡?
2. Activity的狀態是怎麼被恢復的?
通過實驗,Activity的狀態恢復與怎麼啟動它沒有關係,狀態儲存和恢復完全是Android系統內部的一個機制,也就是說,當我們需要啟動一個Activity時,不管以任何方式啟動,總是由Android系統接管Activity的啟動,準確來說,是ActivityManager接管Activity的啟動。ActivityManager在收到啟動Activity的請求時,首先檢視要啟動的Activity有沒有儲存狀態,如果有,那麼就在Activiy的onCreate方法和onRestoreInstanceState方法中,將儲存的狀態傳遞給Activity去恢復狀態。
從這一點可以推斷出,Activity的狀態管理是由ActivityManager完成的,而且對Activity的呼叫者來說是不可見的。
相關文章
- Android Activity 重建之狀態儲存與恢復Android
- [譯] 狀態恢復入門教程
- iOS UI狀態儲存和恢復(三)iOSUI
- 前端 | Vue 路由返回恢復頁面狀態前端Vue路由
- PRemiere介面怎麼恢復?PR介面功能恢復預設狀態的技巧REM
- 恢復oracle的scott使用者初始狀態操作Oracle
- [譯]使用MVI打造響應式APP(六):恢復狀態APP
- sqlsever處理資料庫的恢復掛起狀態SQL資料庫
- win10登錄檔恢復初始狀態的方法Win10
- 如何恢復SSD NVME固態硬碟的資料恢復硬碟資料恢復
- MySQL是如何做到可以恢復到任意一秒狀態的?MySql
- oracle關閉狀態刪除活動日誌報錯恢復(一)Oracle
- vue v-for 列表更新導致 iframe 重新整理而狀態丟失的原因以及恢復狀態的方案Vue
- win10怎麼恢復系統初始狀態 win10系統還原成原始狀態的方法Win10
- SQLServer資料庫處於恢復掛起狀態的解決辦法SQLServer資料庫
- 設計模式(二十)——備忘錄模式(遊戲角色狀態恢復問題)設計模式遊戲
- win10如何恢復電腦右下角的輸入法 win10如何恢復輸入法狀態列Win10
- Flink CheckPoint狀態點恢復與savePoint機制對比剖析-Flink牛刀小試
- Jtti:SQLServer資料庫處於恢復掛起狀態的解決辦法JttiSQLServer資料庫
- 使用 MVI 編寫響應式 APP — 第六部分 — 狀態恢復APP
- 重學安卓:絕不丟失狀態的 Activity 重建機制!安卓
- 固態行動硬碟資料恢復硬碟資料恢復
- 聯想固態硬碟資料恢復硬碟資料恢復
- SSD NVME固態 硬碟 資料恢復硬碟資料恢復
- win10 恢復掛起程式方法 win10如何取消軟體掛起狀態Win10
- React通過redux快取列表資料以及滑動位置,回退時恢復頁面狀態ReactRedux快取
- 恢復linux網路介面並配置靜態ipLinux
- 臺電固態硬碟維修資料恢復硬碟資料恢復
- 英特爾固態硬碟維修資料恢復硬碟資料恢復
- 手機直播原始碼,滾動條在滑動時顯示,靜止時恢復隱藏狀態原始碼
- 閃迪SanDisk固態硬碟維修資料恢復硬碟資料恢復
- 資料恢復:AMDU資料抽取恢復資料恢復
- postgreSQL 恢復至故障點 精準恢復SQL
- Vsan資料恢復—Vsan資料恢復案例資料恢復
- MySQL 非常規恢復與物理備份恢復MySql
- 【Vsan資料恢復】Vsan資料恢復案例資料恢復
- 三星固態硬碟不識別資料恢復硬碟資料恢復
- WIN10狀態不顯示日期怎麼辦 WIN10桌面不顯示日期恢復方法Win10
- Activity啟動模式(GIF 動態演示)模式