簡體   English   中英

是onSaveInstanceState(Bundle)的方法是在onPause()之后調用的嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM