深色模式
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走普通创建流程,而不是重建。
