Activity活跃的生命周期
一个Activity活跃的生命周期始于OnResume调用,结束于OnPause调用。一个活跃的Actvity总是在前台并且接收用户输入事件。当一个新的Actvity 启动,或该设备进入休眠状态,或失去焦点,Activity活跃的生命周期就结束了。尽量在onPause和onResume方法中执行较量轻的代码以确保您的应用程序能够快速响应Acitvity在前台和后台之间切换。
在调用onPause之前,onSaveInstanceState会被调用。这个方法提供了一个机会保存当前的UI状态到Bundle当中。 Bundle信息将会被传递到OnCreate和onRestoreInstanceState方法。使用onSaveInstanceState保存 UI状态(如检查按钮状态,用户焦点,未提交用户输入)能够确保目前相同的用户界面当Activity下次被激活时。在Activity活跃生命周期中,你可以安全地认为onSaveInstanceState和onPause将被调到即使当前进程将终止。
Activity生命周期示例
- 父Activity启动子Activity,子Actvity退出,父Activity调用顺序如下
onCreate()
onStart()
onResume()
onFreeze()
onPause()
onStop()
onRestart()
onStart(),onResume() …
- 用户点击Home,Actvity调用顺序如下
onCreate()
onStart()
onResume()
onFreeze()
onPause()
onStop() -- Maybe
onDestroy() – Maybe
- 调用finish(), Activity调用顺序如下
onCreate()
onStart()
onResume()
onPause()
onStop()
onDestroy()
- 在Activity上显示dialog, Activity调用顺序如下
onCreate()
onStart()
onResume()
- 在父Activity上显示透明的或非全屏的activity,Activity调用顺序如下
onCreate()
onStart()
onResume()
onFreeze()
onPause()
- 设备进入睡眠状态,Activity调用顺序如下
onCreate()
onStart()
onResume()
onFreeze()
onPause()