一、说明
其实 Activity 的生命周期总体来说挺简单的,但是很多初学者总是搞不太清楚其概念。究其原因,可能是一些官方文档中的一些说明不是特别容易记忆。在此,我尽量用通俗的语言再解释一下其生命周期。
二、图示
官方文档中给出了以下图示和说明,其实也是可以比较明显的看出其生命周期具体的一个流程。
三、概念理解
通过以上官方文档可能有时觉得不太好理解和记忆,我们一起来理解一下这7个生命周期:
- onCreate & onDestroy:创建、销毁
- onStart & onStop & onRestart:是否可见
- onResume & onPause:是否可操作
根据以上几点,想想实际操作中是不是按着这几个逻辑走的呢。
四、应用场景
我们结合应用场景,并对应上面的“概念理解”看一下是不是这样的情况。
场景1:创建并打开页面
打开一个页面一定是执行了以下几个步骤:
- 创建
- 可见
- 可操作
对应的生命周期分别是:
- onCreate
- onStart
- onResume
场景2:关闭页面
试想一下,关闭页面的过程:
- 不可操作
- 不可见
- 销毁
对应的生命周期分别是:
- onPause
- onStop
- onDestroy
场景3:弹窗、取消弹窗
想想弹窗的过程是怎样的:
弹出一个小的 dialog 挡在页面的最前面,这个时候后面的页面是可见的,但是页面中的任何按钮都不可点击、任何滑动也不可操作,除非你把弹窗先给取消了。
由于其可见但不可操作性,我们断定是执行了 onPause 的生命周期。
生命周期:
弹出弹窗再隐藏弹窗的过程触发生命周期:
- onPause(弹窗)
- onResume (弹窗消失)
场景4:打开新页面、再回到当前页面
打开下个页面后,该页面是不是既不可点击也不可见呢? 根据它表现形式,用脚也能想到是执行了:不可操作、不可见、可见、可操作,而对应的生命周期过程是:
- onPause
- onStop
- onRestart(这个着重记忆一下)
- onStart
- onResume
五、总结
根据我说的概念理解和应用场景示例分析,再结合上面的生命周期图,是不是对 Activity 的生命周期有一个更深入的理解呢 ? 相信你现在已经完全掌握 Activity 的生命周期。
六、思考题
根据以上的分析和理解,检验一下你是否已经完全掌握 Activity 的生命周期了呢:
请分析:按上 Home 键,再点击应用图标回到该页面。
哈哈,是不是很简单呢 ?