Activity的生命周期
为了在 Activity 生命周期的各个阶段之间导航转换,Activity 类提供六个核心回调:onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。当 Activity 进入新状态时,系统会调用其中每个回调。
activity_lifecycle.png
单个Activity的生命周期
用户可见,持有焦点(可以做输入,点击等操作)
onCreate()
- 您必须实现此回调,它会在系统首次创建 Activity 时触发。Activity 会在创建后进入“已创建”状态。
常见用法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
onStart()
onResume()
- onStart() 和 onResume() 几乎总是同时执行
用户不可见状态,失去焦点(不可输入,点击)
onPause()
- 当前页面退出在后台时触发(尽管在用户处于多窗口模式时 Activity 仍然可见)
onStop()
- 当 Activity 对用户不再可见时,系统会调用 onStop()。出现这种情况的原因可能是 Activity 被销毁,新的 Activity 启动,或者现有的 Activity 正在进入“已恢复”状态并覆盖了已停止的 Activity。在所有这些情况下,停止的 Activity 都将完全不再可见
- 系统调用的下一个回调将是 onRestart()(如果 Activity 重新与用户互动)或者 onDestroy()(如果 Activity 彻底终止)
onRestart()
- 用户从其他Activity 返回该Activity 时会触发
- 当处于“已停止”状态的 Activity 即将重启时,系统就会调用此回调。会从 Activity 停止时的状态恢复 Activity
- 此回调后面总是跟着 onStart()
onDestroy()
- 系统会在销毁 Activity 之前调用此回调。
网友评论