从今天起,我会利用空闲时间写写从《Android开发艺术探索》中学到的知识总结。一是为了巩固学到知识,因为我看这本书,大概只用了两周,可以说是囫囵吞枣吧,现在从头开始来梳理一下;二是为了和大家分享,有错误的地方,希望大家指出来,谢谢
onCreate:正在创建;做一些初始化的工作
onRestart:正在重新启动;当前Activity从不可见重新变为可见,则被调用
onStart:正在启动;Activity已经可见,但没有出现在前台,还在后台,所以无法与用户交互
onResume:开始活动;Activity已经可见,出现在前台
onPause:正在停止;正常情况下,onStop会被调用。特殊情况下,如果这个时候快速回到当前Activity,onResume会被调用,就像上图一样。在该生命周期函数内,可以执行存储数据、停止动画等工作,不能太耗时,因为这会影响到新Activity的显示
onStop:即将停止;可以执行回收工作,也不能太耗时
onDestory:即将销毁;可以执行回收工作和最终的资源释放
下面说说常见的几种情况的生命周期回调过程:
a、Activity,第一次启动:onCreate-->onStart-->onReasume
b、打开新Activity或切换到桌面:onPause-->onStop;如果新Activity采用了透明主题,则不会回调onStop
c、返回原Activity:onRestart-->onStart-->onResume
d、按下返回键:onPause-->onStop-->onDestory
e、Activity被系统回收了,再打开生命周期的回调和(a)过程是一样的
注意:
1、onStart和onStop是从Activity是否可见的角度来回调的;onResume和onPause是从Activity是否位于前台的角度来回调的。所以,我们在实际开发中可以只保留其中一对,比如onStart和onStop。
2、假设当前Activity为A,打开一个新Activity为B;其生命周期回调如下:A.onPause-->B.onCreate-->B.onStart-->B.onResume-->A.onStop(当前Android版本为5.0,不同版本可能不一样;这只是提提)