刚开始学习Android时看了一些入门的书籍,大多的书籍前面的章节都会介绍Activity的生命周期,刚开始学时感觉好像没什么用,因为好像只重写onCreate方法就好啊。其实还是to young了,因为不懂生命周期的话就不知道什么时候会执行哪些方法,所以认真学习一遍还是很重要的。
首先需要了解一下各个方法有什么用处:
(1)onCreate:这是生命周期的第一个方法,我们一般是在这个方法中做一些初始化的工作,就是准备界面显示之前的一些信息。一般包括初始化控件和设置事件监听。
注意的是:这个方法中不宜做一些耗时的操作,不然在界面显示出来之前等待的时间太多。
(2)onStart:这个方法是在Activity第一次启动的到时候紧接着onCeate方法被执行的。
这里需要注意的是:这时候Activity已经可见,但是没有出现在前台。即Activity已经显示了,但是我们还看不到。
(3)onResume:这时候Activity已经在前台了,可以开始交互了。可以理解为Activity已经在手机屏幕上运行了。
(4)onPause:这个方法一般在打开新的Activity或者切换到桌面的时候被执行,这个方法执行完一般会紧接着执行onStop方法。
onPause方法一般是做一些存储数据、停止动画等工作,注意的是:这个方法中同样不能执行太多耗时的操作。
(假如从一个Activity跳转到另一个Activity,那么第一个Activity的onPause方法会比第二个Activity的onResume方法先执行。)
(5)onRestart:这个好理解,跟就是重新启动嘛。
(6)onStop:停止。主要做一些回收操作。
(7)onDestroy:销毁。
看完上面枯燥的原理,可能你会说~
onStart和onResume,onPause和onStop不是差不多一样的吗,谷歌干嘛搞得这么麻烦。
其实呢,我也这么觉得。。。。
啪啪,不是的,其实onStart和OnStop是从“是否可见”的角度而言的,而onResume和onPause是从“是否位于前台”来说的。所以要根据需求来选择。
为了有助于更好的理解,我们需要看看官方的图解:
图片来源:http://blog.csdn.net/liuhe688/article/details/6733407
不过个人感觉这张官方的图片还不太好记忆,个人觉得《Android群英传》中徐宜生大神给的图更好理解,自上而下表示Activity的可见程度。由于没有图就不盗图了。。