Activity.OnSaveInstanceState 方法

定义

重载

OnSaveInstanceState(Bundle)

调用以在终止之前从活动中检索每个实例状态,以便可以还原 #onCreate 状态或 #onRestoreInstanceStateBundle 此方法填充的填充将传递给这两者)。

OnSaveInstanceState(Bundle, PersistableBundle)

这与 #onSaveInstanceState 使用属性 android.R.attr#persistableMode 设置为 persistAcrossReboots 创建的活动相同。

OnSaveInstanceState(Bundle)

调用以在终止之前从活动中检索每个实例状态,以便可以还原 #onCreate 状态或 #onRestoreInstanceStateBundle 此方法填充的填充将传递给这两者)。

[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 状态或 #onRestoreInstanceStateBundle 此方法填充的填充将传递给这两者)。

此方法在活动可能终止之前调用,以便在将来某个时间返回时可以还原其状态。 例如,如果在活动 A 前面启动活动 B,并且在某些时间点活动 A 终止以回收资源,则活动 A 将有机会通过此方法保存其用户界面的当前状态,以便在用户返回到活动 A 时,可以通过或通过 #onCreate#onRestoreInstanceState还原用户界面的状态。

不要将此方法与活动生命周期回调混淆,例如 #onPause,当用户不再主动与活动交互时调用此方法,或者在 #onStop 活动变得不可见时调用此方法。 调用和#onPause#onStop调用此方法的一个示例是,当用户从活动 B 导航回活动 A:无需调用 #onSaveInstanceState B,因为该特定实例永远不会还原,因此系统不会调用它。 在活动 A 前面启动活动 B 时 #onPause ,例如 #onSaveInstanceState ,如果活动 A 在生存期内未终止活动 A,则系统可能会避免调用 #onSaveInstanceState 活动 A,因为 A 用户界面的状态将保持不变。

默认实现通过调用 android.view.View#onSaveInstanceState() 具有 ID 的层次结构中的每个视图,以及保存当前聚焦视图的 ID(所有视图在默认实现 #onRestoreInstanceState中还原)来处理大多数每个实例的 UI 状态。 如果重写此方法以保存每个单独视图未捕获的其他信息,则可能需要调用默认实现,否则请准备好自行保存每个视图的所有状态。

如果调用,此方法将在面向平台的应用程序之后 #onStop 进行,从 android.os.Build.VERSION_CODES#P此开始。 对于面向早期平台版本的应用程序,此方法将发生之前 #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 属性许可证中所述的术语使用。

另请参阅

适用于