Activity作为四大组件之首,也是我们最常用的,使用最为频繁的组件.在正常情况下,除了Dialog,Toast以及Window之外,我们能见到的界面也就是Activity.
正常情况下的Activity的生命周期
①onCreate:在Activity被创建的过程中,一个先执行的方法,并且它执行且执行一次.在这个方法中,我们一般去做一些初始化的操作:比如setContentView加载布局等等.
②onRestart:表示Activity正在重启,Activity在从不可见的状态变为可见的状态的时候,会执行这个方法.一般情况下这种情况是用户导致的,比如说,我们在当前的Activity页面点击了home键,当前的Activity变消失不见了,当用户再启动此应用的时候,Activity重现,此时,就会调用onRestart方法.
③onStart:表示Activity正在启动,此时Activity已经可见但是还没有出现在前台,无法与用户交互(即不能点击的状态)
④onResume:此时的Activity正在前台活跃的活动,我们可以看到,并且可以和用户进行交互.
⑤onPause:表示Activity已经停止,一般在这个方法中进行数据的保存,一般执行完这个方法就会执行onStop方法,但是特殊情况下也会回到onResume
⑥onStop:表示Activity已经停止
⑦onDestroy:表示Activity被销毁,通常在此方法中进行一些回收工作以及资源的释放.
需要注意的是:在所有的Activity的生命周期中都不能进行耗时操作,因为Activity是用于和用户进行操作的界面,当这个界面被阻塞的时候,就会报ANR异常了.
(1)针对一个特定的Activity,第一次启动,回调如下:
onCreate->onStrat->onResume
(2当用户打开新的Activity切换到桌面的时候,回调如下:
onPause->onStop
有一种特殊的情况,如果新的Activity采用了透明的主题,那么它只会执行onPause
(3)当用户再次回到原来的Activity的时候,回调如下:
onRestart->onStart->onResume
(4)当用户按下back键会退的时候,回调如下:
onPause->onStop_>onDestroy
(5)从整个生命周期来看,onCreate与onDestroy是配对的,分别标示着Activity的创建与销毁,并且只可能调用一次,onResume与onPause是配对执行的随着用户的操作,这两对可能被多次执行
其实可以用一个人的一生来描绘Activity的生命周期:
onCreate:相当于一个人的出生
onStart:相当事业的开始
onResume:相当于事业的最高峰,展现在舞台的前端,所有人可以看到
onPause:相当于的事业日渐萧条,退居到幕后
onStop:相当于遭受到巨大的打击
onRestart:重振旗鼓,卷土重来
onDestroy:死亡
所以,当Activity执行的时候,只有onCrteate和onDestroy执行,并且只执行一次.这样理解起来是不是好了很多呢…