首页 > 程序开发 > 移动开发 > Android >

Activity的生命周期

2017-07-14

Activity的生命周期,首先看一张经典的Activity生命周期的图。

Activity的生命周期,首先看一张经典的Activity生命周期的图。

\

从图中可以看出Activity的生命周期的流程,其中具体的几个过程是:

1.Activity启动时会先后调用onCreate,onStart和onResume方法.

2.当Activity上面有一层透明的Activity时会先后调用当前Activity的onPause方法和新Activity的onCreate,onStart和onResume方法.

3.当Activity上面覆盖了一层不透明的Activity时会先后调用当前Activity的onPause,onStop方法和新Activity的onCreate,onStart,onResume方法.

4.当锁屏时调用当前的Activity的onPause,onStop方法.

5.按返回键时调用当前Activity的onPause,onStop,onDestroy方法.

6.按Home键时调用当前Activity的onPause,onStop方法

7.按Home键后再把进程杀死Activity不调用任何生命周期方法(也就是不调用onDestory方法).

8.当Activity上面有一个AlertDialog时,Activity不调用任何方法.

从整个生命周期来说onCreate和onDestroy是配对的,一个创建一个销毁,并且只可能被调用一次;onStart和onStop是配对的,一个是用户可见时调用,一个用户不可见时调用,可以多次调用;onResume和onPause是配对的,一个是当前的Activity位于前台时调用,一个是当前的Activity不位于前台时调用;

下面是一个测试Activity生命周期的Demo:

这个Demo有三个类MainActivity,StandardActivity,TransparentActivity.

MainActivity是主界面,里面有三个Button可以跳转到StandardActivity、TransparentActivity和打开一个对话框.

TransparentActivity是一个透明的Activity.

StandardActivity是一个不透明的Activity.

三个Activity都重写了所有的生命周期方法及onWindowFocusChanged

测试步骤及结果:

1.启动程序

\

2.从主界面中启动TransparentActivity

\

3.在TransparentActivity返回到主界面

\

4.从主界面中启动StandardActivity

\

5.从StandardActivity返回到主界面

\

6.从主界面打开对话框

\

7.关闭对话框

(同上)

8.在主界面按返回键

\

9.在主界面按HOME键

\

10.在进程杀死(不调用任何生命周期方法)

11.在StandardActivity按HOME键

\

12.在TransparentActivity按HOME键

\

13.在主界面按HOME键后重新进入主界面

\

14.在TransparentActivity按HOME键后重新进入TransparentActivity

\

总结:onResume和onPause方法是在Activity是前台进程时调用;onStart和onStop是在Activity可视进程变成后台进程时调用;onRestart是在Activity未被销毁的情况下Activity从后台进程变成可视进程时调用;

相关文章
最新文章
热点推荐