深色模式
Activity 的 onSaveInstanceState 方法
保存状态
系统会回调这个方法: onSaveInstanceState(Bundle outState)
,数据被保存在 Bundle
结构中。
调用时机
在Activity可能被系统销毁时,用户主动退出不算。
生命周期
在 onStop()
之前,但不确定在 onPause()
之前还是之后。
恢复状态
返回一个Activity,如果该Activity没有被系统销毁,则走普通流程,即
onRestart()
、
onStart()
、
onResume()
,
如果Activity被系统销毁了,则走重建流程,即
onCreate(@Nullable Bundle savedInstanceState)
、
onStart()
、
onRestoreInstanceState(@NonNull Bundle savedInstanceState)
、
onResume()
。
调用时机
在Activity重建时,调用onRestoreInstanceState(@NonNull Bundle savedInstanceState)
。
生命周期
对于Activity,有2个地方可以获得被保存的数据:
- onCreate(@Nullable Bundle savedInstanceState)中可以获得被保存的数据。
- onRestoreInstanceState(@NonNull Bundle savedInstanceState),调用时机在onStart()与onResume()之间。
注意这两个方法的参数注解不一样,第一个方法中的 savedInstanceState
可能是空的,这意味着Activity走普通创建流程,而不是重建。