最近在学习一些Android,Java的一些细节,学术知识,看到了很多比较牛的前辈的文章,感觉很好,我就跟着他们的步伐,走在路上,在这很感谢那些能够把自己的知识共享给大家的前辈,您辛苦了,好,转入正题。
对于Android的各个生命周期完成什么工作,我一直也比较茫然,只是隐隐约约知道个大概,但是不是那么的确定和明确,感觉这样不是学习的态度,那我就站在前辈的肩膀上,整理下思路:
具体的Android的生命周期,相信大家也应该知道有哪些,为什么这样分呢,我感觉,这样能够对整个应用程序的生命把控,那就可以在什么时候,处理什么事件,自由度和可控性都比较好。就像人一样吧,可能到了哪个年纪,就应该去干什么事呢。
OnCreate:在这里做一些初始化的工作,各种初始化操作,界面啊什么的;(创建)
OnStart:到了这一步,用户可以看到程序的界面,但是还不能交互;(可见不可交互)
OnResume:到了这一步的话,用户可以进行交互了;(可见可交互)
OnPause:到了这一步可见,但是不可交互,系统会停止动画等消耗CPU的事情,这里应该保存一下你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统回收,这种情况不太发生,具体的出发条件,比如内存消耗严重等。当然在这保存的数据应该在OnResume里读出来,注意:这个方法里做的事情要短,因为下一个Activity不会等到这个方法完成才启动;(可见不可交互)
OnStop:变得不可见的时候,被下一个Activity覆盖;(不可见不可交互)
OnDestroy:这个就是Activity跟大家说再见的时候调用。(销毁)
大家应该看到了,上面的过程是对称的,注意括号里面的提示。
从上面的描述,可能还有些地方,不容易被注意到,看:
A.假如,一个Activity被另一不透明的Activity完全覆盖,意思就是看不到了,会这样:OnPause->OnStop;恢复的时候:OnStart->OnResume;
B.假如,一个Activity被另一个半透明的的Activity或者未全屏的Dialog之类的,覆盖,意思就是还能看到的时候,会这样:OnPause;恢复的时候:OnResume。
相信大家看了之后有个大概的了解吧,实际具体的内容,还是要靠自己去学啦。