Activity的不同生命周期onSaveInstanceState (和onRestoreInstanceState ) Activity的不同生命周期变化总结了Activity的不同生命周期
系统中的Activity由Activity堆栈进行管理,启动新的Activity时,该Activity将位于堆栈的顶部,并处于正在运行状态。 上一个Activity位于堆栈中的新Activity下,在新Activity结束之前不会出现在前端。 下图显示了Activity的完整生命周期。
onCreate
首次创建Activity时调用onCreate方法。 我们通常在onCreate方法中加载布局,并初始化控件。
开始
在Activity变为可见时,调用onStart方法。
onResume
如果Activity位于堆栈顶部,正在运行,并且可以与用户交互,则调用onResume方法。
onPause
如果Activity失去焦点,并且在保持可见的情况下调用了onPause方法,则Activity将无法与用户交互。
onStop
当Activity从可见变为不可见时,调用onStop方法。
不详细信息
在Activity被销毁之前调用onDestory方法。
重新开始
在Activity重新启动时调用onRestart方法,而在第一次创建Activity时不调用。
完整的生命周期:
整个生命周期是从最初创建Activity并调用onCreate方法到在销毁之前调用onDestroy方法之间的时间。
可显示的生命周期:
可见生命周期是从Activity调用onStart方法使其可见到调用onStop方法使其不可见之间的时间段。
前台生命周期:
前台生命周期允许Activity调用onResume方法与用户交互,而不允许调用onPause方法与用户交互。
onSaveInstanceState ()和onRestoreInstanceState ) )。
如果“未经您的允许”放弃Activity,则调用onSaveInstanceState方法以保存Activity的状态信息。 Activity被系统销毁后,在恢复Activity时调用onRestoreInstanceState方法以恢复Activity的状态信息。 可重写这两种方法在系统“未经您许可”销毁Activity时保存和恢复数据。
“未经您许可”意味着非人为地销毁Activity。 例如,按“上一步”按钮退出页面是人为的,而系统由于内存不足而回收和销毁Activity是非人为的。 onSaveInstanceState方法什么时候调用
(1)、用户按下HOME键时。
) 2、切换到其他进程时。
(3)、锁定屏幕时。
) 4、启动新的Activity时。
) 5、屏幕方向切换时。
什么时候调用onRestoreInstanceState方法
Activity被系统销毁并返回该Activity时。 如果用户按HOME键立即返回该Activity,则不会调用onRestoreInstanceState方法,因为该Activity通常由于内存不足而未回收到系统中。 因此,onSaveInstanceState和onRestoreInstanceState不一定成对调用。