天天看点

Activity生命周期演示

Activity生命周期演示

在“管理activity的生命周期”系列课程中,我们讲解了activity的生命周期,官方网站上是有一个演示Demo的(下载Demo),通过我的演示,来给大家讲解一下activity的生命周期。

编译运行工程,进入app,界面如下:

Activity生命周期演示

Activity A是主入口activity,所以显示ActivityA的界面。Activity A显示在前台,所以依次有3个生命周期回调方法被调用:onCreate() -> onStart() -> onResume()。

接下来,我们启动B:

Activity生命周期演示

此时Activity B进入前台,状态是运行,Activity A完全不可见,则进入后台,状态是停止,他们两个的生命周期方法都会被调用,调用顺序如下图所示:

Activity生命周期演示

请注意他们的调用顺序,A.onPause()->B.onCreate()->B.onStart()->B.onResume()->A.onStop()。

大家注意到了吧,A.onStop()是在B完全显示出来时才调用的,这就是为什么把CPU密集型的释放资源的动作放在onStop()里进行,而不是放在onPause()里进行,因为如果onPause()操作时间太长的话,会影响Activity B的及时显示的。

现在结束B,如下图所示:

Activity生命周期演示

此时A和B的生命周期方法调用顺序如下:

Activity生命周期演示

由于B调用了finish()结束自己,所以B此时会被调用onDestroy(),且处于销毁状态。

在A的界面启动一个对话框风格的activity时,会发生什么呢?如下图,启动对话框:

Activity生命周期演示

由于对话框没有填满整个屏幕,所以A部分可见,它的onPause()回调被调用,目前处于暂停状态。接着关闭对话框,如下图:

Activity生命周期演示

A完全可见,则onResume()回调被调用,处于运行状态。

以上就是Activity的生命周期的简单演示,大家可以下载下Demo,然后自己操作一下,就会明白了。