【Android学习总结】之Activity:深入理解、体验Activity的生命周期

【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】

成都创新互联公司"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!成都创新互联公司具备承接各种类型的成都做网站、成都网站设计项目的能力。经过10多年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。

关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识:

一、什么是生命周期?

二、Activity生命周期的官方定义

三、Activity生命周期流程图的理解

四、通过代码来切身体验每一个周期函数的执行时机

接下来,让我们开始进入正题吧。

一、什么是生命周期?

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

生命周期,通俗来讲就是从生到死这一期间一系列的状态。大家可能在其他语言中早已经听说了这一概念,比如C语言中变量的生命周期,iOS开发中UIView的生命周期等。生命周期这个概念在不同的领域当中大体讲的差不多,只是划分的状态可能不同,有的划分粒度大一些,有的划分粒度要细一些。本文要讲的生命周期从宏观上来讲就是上图上所列举的那样:创建——>将要可见——>可见——>将要不可见——>销毁。

二、Activity生命周期的官方定义

Activities in the system are managed as an activity stack. When a new activity is started, it is placed on the top of the stack and becomes the running activity -- the previous activity always remains below it in the stack, and will not come to the foreground again until the new activity exits.

官方意思大体是这样Activity在系统中是通过Activity栈来进行管理的,当一个新的Activity被打开时,这个新的Activity就被放到栈的顶部并且保持运行状态,但在其之前的那个Activity总是保留在这个新Activity的下面,并且只有当这个新的Activity退出时原来的那个Activity才会重新回到前台。

三、Activity生命周期流程图的理解

让我们一起来看一下官方的这个生命流程图:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

该图引用自:http://developer.android.com/reference/android/app/Activity.html

为方便说明,在此我作了一点点的改动,其实也就是把注释说明换成中文而已了,哈哈。

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

Activity的生命周期函数的执行时机都已经在图中作了简要说明,在此就不在赘述。

四、通过代码来切身体验每一个周期函数的执行时机

1、当我们启动应用程序时,生命周期函数执行顺序如下:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

2、当我们按下power键锁屏时,生命周期函数执行顺序如下:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

3、当我们再次解锁回到界面时,生命周期函数执行顺序如下:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

4、当我们点击按钮打开一个新的Activity时,生命周期函数执行顺序如下:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

5、当新打开的Activity退出时,生命周期函数执行顺序如下:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

6、当Activity退出时,生命周期函数执行顺序如下:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

7、最后一点,我们来验证下网上诸多网友博文中所说的:“当弹出Dialog时会执行onPause()函数”这一说法,这一说法正确吗?

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

当Dialog弹出后我们来查看下输出日志信息:

【Android学习总结】之Activity:深入理解、体验Activity的生命周期

从输出日志我们可以发现,在弹出Dialog时根本没有执行onPause()函数,依然保持着可见状态。所以,网络上关于“当弹出Dialog时会执行onPause()函数”这一说法是错误的!


关于Activity生命周期的学习总结,到此就告一段落了!欢迎各位批评指正!


网页名称:【Android学习总结】之Activity:深入理解、体验Activity的生命周期
网页链接:http://scyanting.com/article/iidods.html