Activity的生命周期以及异常情况下的生命周期

2018-04-17  本文已影响0人  名聪小先生

一、什么是Activity

Activity作为四大组件之首,是使用作为频繁的一种组件,中文翻译过来是活动的意思,我觉得如果翻译成界面会不会更好理解一点?在正常情况下用户能够看到的界面除了window、Dialog、和Toast之外就只有Activity了,可想而知Activity是多么的重要?

二、正常情况下的生命周期

onCreat

此方法表示正在被创建,这也是生命周期的第一个方法。在这个方法中,开发者可以做一些初始化的操作。比如加载界面布局资源,同时也可以做一些Activity所需的数据。

onStart

表示Activity正在被启动,这个时候Activity已经可见了,但是没有出现在前台而已,并且还无法跟用户进行交互,这个时候其实可以理解为Activity已经显示出来了,但是开发者还看不到。

onResume

表示Activity已经可见了,与此同时已经出现在前台了,并且可以开始活动,这里跟onStart有个区别就是在于onResume是可见并且可以和用户进行交互以及展示在前台,而onStart可见但是还在后台不能和用户进行交互

onPause

表示Activity正在停止,正常情况下onStop就会被调用,此时可以做一些存储数据和释放一些轻量级的资源,但是一定要注意的事不能做太耗时的操作,因为如果做了耗时操作的话会影响整个app的流畅度。比如说会影响新的Activity的 显示。

onStop

表示Activity即将被暂停,可以释放一些重量级的资源,但是同样不能太耗时。原因跟onPause一样。

onDestroy

表示Activity即将被销毁,此时可以回收最终的资源释放。

onRestart

表示Activity正在被重新启动,当前Activity的一个从不可见到一个可见的过程,比如说在当前默认启动模式下的Activity启动了另外一个默认启动模式的Activity的时候

生命周期说完但是这里需要强调的第二个人觉得有两个。首先第一个就是当用户打开了新的activity的时候如果新的activity采用的是透明主题那么当前的activity不会调用onstop方法。第二就是说当内存不足时也就是说我们并没有对Activity调用finish,而是被系统回收掉的时候这个时候就是异常情况下的生命周期了。

当当前Activity发生异常的时候首先是调用onSaveinstanceState方法,用来保存当前Activity的状态,与此同时需要补充的是这个方法是在onStop之前调用。然后在走onDestory。如果是正常流程下的Activity是不会走这个方法的。

当重新启动这个因异常错误销毁的activity的时候,先走onCreat方法。然后走onRestoreinstanceState这个方法。用来做一些数据的恢复。写到这里就基本OK了。具体数据是怎么恢复的咱们就先不说啦。

上一篇下一篇

猜你喜欢

热点阅读