文章建议:*
因为这部分内容对于一个初学者来说,可能稍微比较难理解,但是要多看,虽然写的文章靠前,但是以后我们每做一个实例,都会加深这部分的理解.建议一段时间之后就回过头来看看这篇文章,理解的深度就不同了.
主要内容:
Android活动生命周期之返回栈的理解;
Android活动生命之后之四大生命状态;
Android活动3种生存期以及所对应的函数;
Android活动生命周期之返回栈的理解
更好的理解活动的生命周期,可以写出更加流畅的程序,也就是你将拥有很好的用户体验。
我们每启动一个新的活动,就会覆盖在原活动之上。这一点非常重要,在这个项目中经常有这样的需求。比如额外弹出一层,需要移动一下layout中xml文件中的显示顺序,以后会提到实例。
点击back键实际是销毁最上面的活动,所以下面的活动就会显示出来。
如何更好的理解活动的显示方式呢?其实Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里活动的集合,也被称返回栈。栈是一种后进先出的数据结构,每当我们启用一个新活动,它会进入返回栈且处于栈顶的位置。每当我们按下返回键或者调用finish()方法就会销毁处于栈顶的活动,让其出栈,那么前一个入栈的活动就会处于栈顶的位置。(如果你觉得不好理解,可以将栈理解成一个管子或者一个杯子,是不是就很好理解了呢?)
android活动生命之后之四大生命状态
活动状态:
-
运行状态:
当一个活动处于返回栈的栈顶的位置,就是处于运行状态。 -
暂停状态:
一个活动不再处于栈顶的位置,但是仍然可见时,就进入了暂停状态。 -
停止状态:
一个活动不再处于栈顶的位置,并且完全不可见的时候,就进入了停止状态。系统仍然会对这种活动保存相应的状态和成员变量,但是并不可靠,当其他地方需要内存的时候,很可能处于停止状态的活动首先被系统回收。 -
销毁状态:
当一个活动从返回栈中移除后就变成了销毁状态。系统最倾向于回收处于这个状态的活动,从而保证手机内存的充足。
Android活动3种生存期以及所对应的函数
活动的生存期中的函数:
onCreate().
每个Activity都要重写这个方法,它会在活动第一次被创建的时候调用。这个方法适合做一些初始化的操作,比如加载布局,绑定事件等。
onStart().这个方法在活动由不可见变为可见的时候调用。
onResume():这个方法在活动准备好和用户交互的时候调用。此时的活动一定位于返回栈栈顶的位置,且处于运行状态。
onPause():这个方法在系统准备去启动或者回复另一个活动的时候调用。在这个方法中奖一些消耗CPU的资源释放掉,以及保存一些关键数据,关键要点执行这个方法要快,否者会影响新的栈顶活动的使用。
onStop()这个方法是活动完全不可见的时候调用。它和onPause()方法的主要区别在于,如果新活动是一个对话框的活动,那么onPause()方法会得到执行,而onStop()方法并不执行.
onDestroy()这个方法在活动被销毁之前调用,之后的活动状态变为销毁状态. 一般在这个方法中完成释放内存的动作.
onRestart()这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重启了.
以上方法中,除了onRestart()方法,其他都是两两相对的.
活动又可以分为3种生存期
1.完整生存期: 活动在onCreate()方法和onDestroy()方法之间所经历的.
2.可见生存期:活动在onStart()方法和onStop()方法之间所经历的. 活动对用户是可见的,即便有可能无法与用户进行交互. 我们可以通过这两个方法,合理地管理那些对用户可见的资源.
比如在onStart()方法中对资源进行加载,而在onStop()方法中对资源进行释放,从而保证停止状态的活动,不会占用过多的内存.
3.前台生存期. 活动在onResume()方法和onPause()方法之间所经历的就是前台生存期. 前台生存期,活动总是处于运行状态的.此时的活动是可以和用户进行交互的,我们平时看到和接触最多的就是这个状态下的活动.
![](https://img.haomeiwen.com/i2426023/bb2629ed1ecc4319.png)
![](https://img.haomeiwen.com/i2426023/cf761c73b0115da4.png)
点赞是最好的
喜欢,关注是最大的支持。
亲爱的朋友,我需要你,我也等你。
网友评论