Android进阶学习第一天(一)Activity 的生命周期
这是我在向中高级Android开发工程师前进的第一步,坚持做笔记。所有内容均来自任老师的《Android开发艺术探索》
因为差不多有接近两年的Android基础学习个人感觉自己基础还算不错,然后发现越学下去需要学习的东西就越多。好吧,自己踩得坑哭着也要填完。==!
Activity生命周期
onCreate:表示Activity正在被创建,也是生命周期的第一个方法。在这个方法中我们可以做一些初始化工作,比如加载界面布局文件(setContentView),初始化Activity的数据。也是我们最常用的Activity的生命周期方法。
onRestart:表示Activity正在重新启动,一般是Activity又不可见变为可见时调用,比如HOME键返回桌面后又回来,弹出QQ消息点进去进了QQ又回来也会调用。
onStart:表示Activity正在被启动,即将开始,这时Activity已经可见,但是还无法与用户交互,其实可以理解为已经显示,但是我们看不到,点不到。
onResume:表示Activity已经被启动,Activity已经可见,并且出现前台开始活动。虽然和onStart一样都是已经可见,但是onStart方法时Activity还在后台,无法与用户交互,而onResume是已经显示前台,并且可以和用户开始交互了。
onPause:表示Activity正在停止,正常情况下,紧接着onStop就会被调用,如果特殊情况下,如果这时候快速返回当前Activity,那么onResume方法会被调用。这是属于极端情况,用户操作极难发生这样的情况。
onStop:表示Activity即将停止,可以稍微做些重量级回收工作,但是不能太耗时。
onDestroy:表示Activity即将被销毁,是Activity最后一个回调(方法),在这里,我们应该做一些最终的回收工作和资源的释放。
Activity启动分以下几种情况:
(1)第一次启动时:onCreate->onStart->onResume
(2)当用户打开新的Activity或者切换到桌面时(是切换并非返回桌面):onPause->onStop。注意:还有一种特殊情况,如果新的Activity采用的是透明主题,那么当前Activity不会回调onStop。
(3)当用户再次返回原Activity时:onRestart->onStart->onResume
(4)当用户按下BACK键退出时:onPause->onStop->onDestroy
(5)当Activity被系统回收后再打开:onCreate->onStart->onResume 注意:实际只有生命周期和(1),不代表所有过程相同。
(6)从整个生命周期来说除了onRestart,其他方法都是一一对应的,onCreate和onDestroy 标识Activity的创建与销毁。这俩只有一次调用。onStart和onStop标识Activity 是否可见,随着用户操作或者屏幕点亮熄灭,这两个方法可能会被调用多次。onResume和onPause 标识Activity是否在前台,随着用户操作或者屏幕点亮熄灭,这两个方法可能会被调用多次。
onStart和onStop与onResume和onPause从描述上差不多,但是两个回调存在不同的意义,onStart和onStop是在是否可见的角度上,onResume和onPause是在是否位于前台的角度上。实际使用中没有明显区别。可以只使用其中一对。
然后你以为到这里就结束了嘛?其实并不。上面都是正常的Activity启动,既然有正常的,那么肯定就有不正常。下面一篇将说一下不正常的生命周期