共用方式為


Activity.OnSaveInstanceState 方法

定義

多載

OnSaveInstanceState(Bundle)

呼叫 以從活動擷取每個實例狀態,再被終止,以便還原 #onCreate#onRestoreInstanceState 或 中狀態( Bundle 這個方法所填入的 將會傳遞至兩者)。

OnSaveInstanceState(Bundle, PersistableBundle)

這與 #onSaveInstanceState 相同,但針對使用 屬性 android.R.attr#persistableMode 設定為 persistAcrossReboots所建立的活動呼叫。

OnSaveInstanceState(Bundle)

呼叫 以從活動擷取每個實例狀態,再被終止,以便還原 #onCreate#onRestoreInstanceState 或 中狀態( Bundle 這個方法所填入的 將會傳遞至兩者)。

[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")]
protected virtual void OnSaveInstanceState (Android.OS.Bundle outState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle -> unit

參數

outState
Bundle

要在其中放置已儲存狀態的套件組合。

屬性

備註

呼叫 以從活動擷取每個實例狀態,再被終止,以便還原 #onCreate#onRestoreInstanceState 或 中狀態( Bundle 這個方法所填入的 將會傳遞至兩者)。

這個方法會在活動可能終止之前呼叫,如此一來,當活動在未來某個時間回來時,就可以還原其狀態。 例如,如果在活動 A 前面啟動活動 B,而且在某些時候活動 A 會終止以回收資源,活動 A 將有機會透過此方法儲存其使用者介面的目前狀態,如此一來,當使用者返回活動 A 時,使用者介面的狀態就可以透過 #onCreate#onRestoreInstanceState還原。

請勿將這個方法與活動生命週期回呼混淆,例如 #onPause,當使用者不再主動與活動互動,或 #onStop 活動變成不可見時呼叫這個方法時,一律會呼叫這個回呼。 呼叫 和 #onStop#onPause其中一個範例,不是這個方法,就是當使用者從活動 B 巡覽回活動 A:不需要呼叫 #onSaveInstanceState B,因為該特定實例永遠不會還原,因此系統會避免呼叫它。 當 #onPause 呼叫 而不是 #onSaveInstanceState 活動 B 在活動 A 前面啟動時,系統可能會避免在 B 存留期間未終止活動 A,因為 A 的使用者介面狀態會保持不變,所以系統可能會避免在 #onSaveInstanceState 活動 A 的存留期間呼叫活動 A。

默認實作會藉由呼叫android.view.View#onSaveInstanceState()階層中具有標識符的每個檢視,以及儲存目前焦點檢視的標識碼,為您處理大部分的UI個別實例狀態(所有檢視都是由預設實作還原)。#onRestoreInstanceState 如果您覆寫此方法以儲存每個個別檢視未擷取的其他資訊,您可能會想要呼叫默認實作,否則請準備好自行儲存每個檢視的所有狀態。

如果呼叫,這個方法會在 之後針對以 開頭android.os.Build.VERSION_CODES#P之平臺為目標的應用程序發生#onStop。 針對以舊版平臺為目標的應用程式,此方法會發生在 之前 #onStop 或之後,並不能保證它是否會在 之前或之後 #onPause發生。

android.app.Activity.onSaveInstanceState(android.os.Bundle)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

另請參閱

適用於

OnSaveInstanceState(Bundle, PersistableBundle)

這與 #onSaveInstanceState 相同,但針對使用 屬性 android.R.attr#persistableMode 設定為 persistAcrossReboots所建立的活動呼叫。

[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")]
public virtual void OnSaveInstanceState (Android.OS.Bundle outState, Android.OS.PersistableBundle outPersistentState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit

參數

outState
Bundle

要在其中放置已儲存狀態的套件組合。

outPersistentState
PersistableBundle

將在重新啟動時儲存的狀態。

屬性

備註

這與 #onSaveInstanceState 相同,但針對使用 屬性 android.R.attr#persistableMode 設定為 persistAcrossReboots所建立的活動呼叫。 android.os.PersistableBundle傳入的 將會儲存#onCreate(Bundle, PersistableBundle),並在下次裝置重新啟動之後,第一次重新啟動此活動時顯示。

android.app.Activity.onSaveInstanceState(android.os.Bundle, android.os.PersistableBundle)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

另請參閱

適用於