Android基础知识回顾——生命周期

Activity生命周期

刚开始实训的时候学习安卓 ,只大概的知道生命周期是什么, 而有哪几个? 具体详细的是什么却一点都摸不着头脑 不过在经历过实训之后,自己才理解安卓的生命周期

安卓Activity生命周期图
相信学过安卓的人对这幅图都很熟悉,这就是安卓Activity生命周期图。详细而直观的描述了各个生命周期的关系,下面就由我来为大家一一分解各个生命周期

1.生命周期中各种方法的含义和作用
(1)onCreate:create表示创建这是Activity生命周期中的第一个方法。这个也是我们在Android开发中接触最多的生命周期方法,因为它本身的工作就是Activity初始化的工作,对控件和变量进行初始化。
(2)onStart:start表示启动,这是Activity生命周期中的第二个方法。其实在这个时候Activity就已经可见了,但是还没有出现在前台,我们还看不到,无法与Activity进行交替。其实将Activity初始化放在这里也是没有问题的。
(3)onResume:resume表示继续重新开始的意思,这名字和它的职责也是一样的,此时Activity经过前面两个的初始化已经蓄势待发了,我们已经可以前台看见了。
(4)onPause:pause表示暂停。当Activity要跳转到另一个Activity时或者程序正常退出的时候都会执行这个方法。这个时候Activity在前台 并且可见。
(5)onStop:stop表示停止。此时Activity已经不见了,但是Activity对象还在内存中,没有被销毁,这阶段主要也就是做一些资源回收工作。
(6)onDestory:destory是销毁的意思。这个阶段Activity被销毁,不可见,这个时候我们可以将一些没有被释放的资源释放,和一些资源回收工作。
(7)onRestart:restar表示重新开始。Activity在这里可见。当用户按Home键或者从一个Activity跳转回上一个Activity时就会触发这个方法。
图片源于网络
通过上面的了解我们可以发现基本上Activity生命周期都是 两两对应的,只有onRestart散发着单身狗的清香

2.onCreate和onStart的区别?
1.前者不可见,后者可见。
2.执行次数的区别。onCreat只在Activity创建的时候执行一次,而onStart在Activity来回切换和Home返回桌面再切回桌面中来回使用。因此Bundle数据的恢复在onStart中执行比在onCreate中执行比较合适。
3.onCreate能做的onStart都能做,但是onStart能做onCreate未必就适合。例如setContentView两者都可以做,但是动画初始化在onStart中做比较好。

3.onStart和onResume的区别
1.是否在前台。onStart在Activity中可见但不在前台,不可交互,而onResume在前台。
2.职责不同。onStart主要还是初始化的工作,而在onResume中,根据官方的设定,可以做开启动画和独占设备的工作。

4.onPause和onStop的区别
1.也是可见于不可见的问题。不过是在Activity中罢了。onPause时Activity可见,onStop时Activity不可见,但Activity的对象还在内存中。
2.在系统内存不足的时候可能不会执行onStop方法。因此程序状态的保存,独占设备及动画的关闭和一些数据的保存都只能在onPause中进行。

5.onStop和onDestory的区别
onStop阶段Activity还没有被销毁,对象还在内存中,此时还可以切换Activity回到原先的Activity中,而onDestory阶段Activity已经被销毁了。

6.为什么切换Activity时各方法的执行顺序是(A)onPause-(B)onCreate-(C)onStart-(D)onResume-(E)onStop而不是(A)onPause-(B)onStop-(C)onCreate-(D)onStart-(E)onResume
1.一个Activity或多或少的会占用系统资源,在官方的建议中onPause会释放掉很多的系统资源,为切换Activity提供了流畅性保障,而不需要所等待两个阶段。
2.按照生命周期图的表示,如果用户在切换Activity中再次切换回原先的Activity,是在原先的onPause中调用onResume方法的。

猜你喜欢

转载自blog.csdn.net/a18166064736/article/details/80563609