技术开发 频道

OPhone Activity生命周期解析

  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()

0
相关文章