深入浅出 Activity 生命周期

一、说明

其实 Activity 的生命周期总体来说挺简单的,但是很多初学者总是搞不太清楚其概念。究其原因,可能是一些官方文档中的一些说明不是特别容易记忆。在此,我尽量用通俗的语言再解释一下其生命周期。

二、图示

官方文档中给出了以下图示和说明,其实也是可以比较明显的看出其生命周期具体的一个流程。

三、概念理解

通过以上官方文档可能有时觉得不太好理解和记忆,我们一起来理解一下这7个生命周期:

  • onCreate & onDestroy:创建、销毁
  • onStart & onStop & onRestart:是否可见
  • onResume & onPause:是否可操作

根据以上几点,想想实际操作中是不是按着这几个逻辑走的呢。

四、应用场景

我们结合应用场景,并对应上面的“概念理解”看一下是不是这样的情况。

场景1:创建并打开页面

打开一个页面一定是执行了以下几个步骤:

  1. 创建
  2. 可见
  3. 可操作

对应的生命周期分别是:

  1. onCreate
  2. onStart
  3. onResume

场景2:关闭页面

试想一下,关闭页面的过程:

  1. 不可操作
  2. 不可见
  3. 销毁

对应的生命周期分别是:

  1. onPause
  2. onStop
  3. onDestroy

场景3:弹窗、取消弹窗

想想弹窗的过程是怎样的:

弹出一个小的 dialog 挡在页面的最前面,这个时候后面的页面是可见的,但是页面中的任何按钮都不可点击、任何滑动也不可操作,除非你把弹窗先给取消了。

由于其可见但不可操作性,我们断定是执行了 onPause 的生命周期。

生命周期:

弹出弹窗再隐藏弹窗的过程触发生命周期:

  1. onPause(弹窗)
  2. onResume (弹窗消失)

场景4:打开新页面、再回到当前页面

打开下个页面后,该页面是不是既不可点击也不可见呢? 根据它表现形式,用脚也能想到是执行了:不可操作、不可见、可见、可操作,而对应的生命周期过程是:

  1. onPause
  2. onStop
  3. onRestart(这个着重记忆一下)
  4. onStart
  5. onResume

五、总结

根据我说的概念理解和应用场景示例分析,再结合上面的生命周期图,是不是对 Activity 的生命周期有一个更深入的理解呢 ? 相信你现在已经完全掌握 Activity 的生命周期。

六、思考题

根据以上的分析和理解,检验一下你是否已经完全掌握 Activity 的生命周期了呢:

请分析:按上 Home 键,再点击应用图标回到该页面。

哈哈,是不是很简单呢 ?

发布了179 篇原创文章 · 获赞 91 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/haha223545/article/details/94622923