【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】
成都创新互联公司"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!成都创新互联公司具备承接各种类型的成都做网站、成都网站设计项目的能力。经过10多年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。
关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识:
一、什么是生命周期?
二、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生命周期流程图的理解
让我们一起来看一下官方的这个生命流程图:
该图引用自:http://developer.android.com/reference/android/app/Activity.html
为方便说明,在此我作了一点点的改动,其实也就是把注释说明换成中文而已了,哈哈。
Activity的生命周期函数的执行时机都已经在图中作了简要说明,在此就不在赘述。
四、通过代码来切身体验每一个周期函数的执行时机
1、当我们启动应用程序时,生命周期函数执行顺序如下:
2、当我们按下power键锁屏时,生命周期函数执行顺序如下:
3、当我们再次解锁回到界面时,生命周期函数执行顺序如下:
4、当我们点击按钮打开一个新的Activity时,生命周期函数执行顺序如下:
5、当新打开的Activity退出时,生命周期函数执行顺序如下:
6、当Activity退出时,生命周期函数执行顺序如下:
7、最后一点,我们来验证下网上诸多网友博文中所说的:“当弹出Dialog时会执行onPause()函数”这一说法,这一说法正确吗?
当Dialog弹出后我们来查看下输出日志信息:
从输出日志我们可以发现,在弹出Dialog时根本没有执行onPause()函数,依然保持着可见状态。所以,网络上关于“当弹出Dialog时会执行onPause()函数”这一说法是错误的!
关于Activity生命周期的学习总结,到此就告一段落了!欢迎各位批评指正!