[英]Android PreferenceActivity : Bundle is null in onCreate method after the onSaveInstanceState
[英]Is the method onSaveInstanceState(Bundle) called after onPause()?
我是android新手,我為初學者讀了一本書,說明在系統回收你的Activity
之前,確保調用onSaveInstanceState(Bundle)
。 我嘗試了一些測試代碼並發現它不正確。 我發現每次調用onPause()
后都會調用onSaveInstanceState(Bundle)
。 它與系統回收無關。 我不是很確定,所以這就是問題:什么時候實際調用了onSaveInstanceState(Bundle)
?
我不同意以前的回答。
根據文件 :
如果調用,此方法將在onStop()之前發生。 無法保證它是在onPause()之前還是之后發生。
根據Android文檔 :
此外,在將活動置於這樣的背景狀態之前調用
onSaveInstanceState(Bundle)
方法,允許您將活動中的任何動態實例狀態保存到給定的Bundle中,以便稍后在onCreate(Bundle)
接收需要重新創建。 有關流程生命周期如何與其托管的活動相關聯的詳細信息,請參閱流程生命周期部分。 請注意,將持久數據保存在onPause()
而不是onSaveInstanceState(Bundle)
非常重要,因為后者不是生命周期回調的一部分,因此不會在其文檔中描述的每種情況下調用。
是onPause()
在onSaveInstanceState(Bundle)
之前調用。 但是onPause()
保證被稱為活動生命周期的一部分
通常在重新創建活動時(例如,當您更改設備方向時onSaveInstanceState(Bundle)
如果尚未在manifest.xml
文件中指定android:configChanges
標記,則會調用onSaveInstanceState(Bundle)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.