活动的生命周期
Android中的活动是可以层叠的。每启动一个新的活动就会覆盖在原活动之上,点击Back键会销毁最上面的活动,下面的活动就会重新显示出来。
返回栈
Android是使用Task来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack)。
活动状态
- 运行状态
- 一个活动位于返回栈的栈顶
- 暂停状态
- 一个活动不再位于返回栈的栈顶,但仍然可见(对话框形式的活动)
- 停止状态
- 一个活动不再处于栈顶位置,并且完全不可见
- 销毁状态
- 一个活动从返回栈移除
活动的生存期
Activity定义了7个回调方法,覆盖了生命周期的每一个环节
- onCreate() 在活动第一次创建时被调用
- onStart() 活动由不可见变为可见的时候调用
- onResume() 在活动准备好和用户进行交互的时候调用
- onPause() 系统准备去启动或者恢复另一个活动时调用
- onStop() 活动完全不可见时调用
- onDestory() 在活动被销毁之前调用
- onRestart() 活动由停止状态变为运行状态时调用
完整生存期:onCreate() ---> onDestory()
可见生存期:onStart() ---> onStop()
前台生存期:onResume() ---> onPause()
下面是写的一个Project来体验Activity的生命周期
代码:https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter2/ActivityLifeCycleTest
运行结果图:
第一次被创建,调用了onCreate,onStart,onResume
点击第一个按钮 startNormalActivity(会把MainActivity全部遮挡住)
按下Back键
按下第二个按钮 startDialogActivity(没有完全遮挡住MainActivity)
按下Back键
按下Back键,退出程序