天天看点

典型情况下的activity生命周期分析

(1)onCreate:正在被创建,我们可以做一些初始化工作。

(2)onRestart:正在重新启动。当当前activity从不可见重新变为可见状态时,onRestart就会被调用。

(3)onStart:正在被启动,这时activity已经可见了,但是还没有出现在前台,还无法和用户交互。我们还看不到。

(4)onResume:activity已经可见,并且出现在前台,用户能够看见。onStart和onResume都表示activity已经可见,但是onStart的时候activity还在后台,onResume的时候activity才显示到前台。

(5)onPause:activity正在停止。我们可以做一些存储数据,停止动画等操作,但是不能太耗时,因为这会影响到新activity的显示。onPause必须先执行完,新activity的onResume才会执行。

(6)onStop:activity即将停止,可以做一些稍微重量级的回收工作,同样不能太耗时。

(7)onDestroy:activity即将被销毁,可以做一些回收工作和最终的资源释放。

典型情况下的activity生命周期分析

(1)一个特定的activity,第一次启动,回调如下:onCreate->onStart->onResume。

(2)用户打开新的activity或者切换到桌面,回调如下:onPause->onStop。如果新Activity采用了透明主题,那么当前Activity不会回调onStop。(因为当前activity还是可见的。)

(3)从整个生命周期来说,onCreate和onDestroy是配对的,分别标识这activity的创建和销毁,并且只可能有一次调用。从activity是否可见来说,onStart和onStop是配对的。从activity是否在前台来说,onResume和onPause是配对的。

当新启动一个activity的时候,旧activity的onPause会先执行,然后才会启动新的activity。

firstActivity onPause

secondActivity onCreate

secondActivity onStart

secondActivity onResume

firstActivity onStop

不能在onPause中做重量级的操作,因为必须onPause执行完成以后新activity才能Resume。