因此,Activity.onCreate()
以Bundle
作爲參數,默認情況下它被稱爲savedInstanceState
。應用程序更新到更新版本時是否保留savedInstanceState
? (讓我們通過Google Play說)。我可以在savedInstanceState
中添加一些數據,將應用程序更新爲新版本,並仍然可以訪問數據?是否在更新期間保存savedInstanceState?
2
A
回答
1
保存的實例數據在應用程序更新期間不會保留。這實際上是有意義的,不僅因爲不同版本之間的數據類型潛在的不兼容風險,還因爲您的新二進制文件可能只是完全新的應用程序,僅共享packageId
和簽名證書。這就是爲什麼新版本需要重新啓動 - 更新後用戶將從新的狀態開始,因爲這比嘗試將應用恢復到更新開始前的狀態(這可能根本不可能)要安全得多。
因此,如果您希望數據不受更新影響,數據庫或共享首選項是更好的選擇。
1
的documentation狀態:
如果系統破壞活動由於系統 約束(而不是正常的應用程序的行爲),那麼雖然 實際活動情況消失後,系統會記住它的存在 例如,如果用戶導航回到該位置,系統將使用一組保存的數據創建一個新的活動實例,該組數據描述活動在銷燬時的狀態。系統用於恢復先前狀態的已保存數據稱爲「實例 狀態」,並且是存儲在Bundle 對象中的鍵值對的集合。
但是沒有提及如果應用程序在更新時被殺死會發生什麼。
您應該使用SharedPreferences來安全地保存信息。
相關問題
- 1. 在包中保存ArrayList savedInstanceState
- 2. 是否保存在傳遞後覆蓋savedInstanceState包?
- 3. 保存期間更新其他字段
- 4. 使用savedInstanceState保存fragmentstate
- 5. Microsoft Excel文件是否保存每個更新日期信息?
- 6. 值不會保存在savedInstanceState中
- 7. 更新是否存在
- 8. 是否可以在savedInstanceState中保存位置?也許在一個捆綁?
- 9. 在應用程序更新期間保存的var/mobile/Application/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/Documents/xxxxx.plist中是否存在?
- 10. Django/Python更新字段值(在模型保存期間)
- 11. 在Orchard站點中,模塊更新期間是否可以保存輸出緩存?
- 12. 冬眠@onetomany關係更新,而不是在保存期間插入
- 13. 在SYNC期間,Redis Slave是否會部分更新數據集?
- 14. 在請求期間ServletContext是否被更新
- 15. 在保存/更新流利的實體時保留日期時間nhibernate
- 16. 在CRUDRespository中更新或保存更新,是否有任何可用選項
- 17. SAS:保存是否存在
- 18. 保存上次更新ID和日期從歷史更新更新變化觸發期間進行
- 19. 緩存絕對過期是否保證緩存在確切時間被刪除?
- 20. Sqlite:更新日期列,但只更改日期 - 保留時間
- 21. Cookie:Cookie的時間是否更新?像...是否到期是滑動窗口?
- 22. 插入或更新是否存在行
- 23. PHP PDO批量更新 - 是否存在?
- 24. 插入或更新是否存在MYSQL
- 25. 更新記錄是否存在; else INSERT
- 26. SQL檢查更新前是否存在
- 27. 是否存在更新的'vimtutor'?
- 28. Angular-UI在區間更新期間保持手風琴打開
- 29. 是在memcached更新後更新的到期時間嗎?
- 30. Knockout.js - 保持發佈日期/時間總是更新
我懷疑它是否保留,因爲不能保證任何自定義的Parcelable類在舊版和新版應用程序版本之間是一致的。話雖如此,我還沒有測試過這種情況。 – CommonsWare