网上介绍Activity的生命周期的文章已经很多了,大家也说得很详细,这里只是记录自己的实验结果。
先列举出Activity的关于生命周期的一系列回调函数:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
1 单个Activity
(1) 第一次启动一个新的activity的流程:
10-09 16:00:21.375: INFO/ActivityFirst(15366):onCreate
10-09 16:00:21.445: INFO/ActivityFirst(15366):onStart
10-09 16:00:21.445: INFO/ActivityFirst(15366):onResume
(2) 按返回键退出当前activity
10-09 16:05:36.725: INFO/ActivityFirst(15366):onPause
10-09 16:05:36.845: INFO/ActivityFirst(15366):onStop
10-09 16:05:36.845: INFO/ActivityFirst(15366):onDestroy
(3) 在activity界面按home键退出
10-09 16:07:26.835: INFO/ActivityFirst(15366):onPause
10-09 16:07:27.075: INFO/ActivityFirst(15366):onStop
(4) 通过任务管理器回到ActivityFirst
10-09 16:12:14.425: INFO/ActivityFirst(15366):onRestart
10-09 16:12:14.435: INFO/ActivityFirst(15366):onStart
10-09 16:12:14.435: INFO/ActivityFirst(15366):onResume
2 从一个Activity启动另外一个全屏的Activity,然后返回到第一个Activity
10-09 16:16:28.315: INFO/ActivityFirst(15366): onCreate
10-09 16:16:28.355: INFO/ActivityFirst(15366): onStart
10-09 16:16:28.355: INFO/ActivityFirst(15366): onResume
10-09 16:16:45.745: INFO/ActivityFirst(15366): onPause
10-09 16:16:45.755: INFO/ActivitySecond(15366): onCreate
10-09 16:16:45.785: INFO/ActivitySecond(15366): onStart
10-09 16:16:45.785: INFO/ActivitySecond(15366): onResume
10-09 16:16:46.055: INFO/ActivityFirst(15366): onStop
10-09 16:17:27.605: INFO/ActivitySecond(15366): onPause
10-09 16:17:27.645: INFO/ActivityFirst(15366): onRestart
10-09 16:17:27.645: INFO/ActivityFirst(15366): onStart
10-09 16:17:27.645: INFO/ActivityFirst(15366): onResume
10-09 16:17:27.775: INFO/ActivitySecond(15366): onStop
10-09 16:17:27.775: INFO/ActivitySecond(15366): onDestroy
3 从一个Activity启动另外一个非全屏的activity,然后返回到第一个Activity
10-09 16:23:46.295: INFO/ActivityFirst(15366): onCreate
10-09 16:23:46.335: INFO/ActivityFirst(15366): onStart
10-09 16:23:46.335: INFO/ActivityFirst(15366): onResume
10-09 16:23:56.705: INFO/ActivityFirst(15366): onPause
10-09 16:23:56.725: INFO/ActivitynoFull(15366): onCreate
10-09 16:23:56.745: INFO/ActivitynoFull(15366): onStart
10-09 16:23:56.745: INFO/ActivitynoFull(15366): onResume
10-09 16:24:37.895: INFO/ActivitynoFull(15366): onPause
10-09 16:24:37.925: INFO/ActivityFirst(15366): onResume
10-09 16:24:37.965: INFO/ActivitynoFull(15366): onStop
10-09 16:24:37.965: INFO/ActivitynoFull(15366): onDestroy
Activity的前台生命周期自onResume()调用起,至相应的onPause()调用为止。在此期间,Activity位于前台最上面并与用户进行交互。
Activity的可视生命周期自onStart()调用开始直到相应的onStop()调用结束。在此期间,用户可以在屏幕上看到Activity,尽管它也许并不是位于前台或者也不与用户进行交互。在
这两个方法之间,我们可以保留用来向用户显示这个Activity所需的资源。
Activity的完整生命周期自第一次调用onCreate()开始,直至调用onDestroy()为止。Activity在onCreate()中设置所有“全局”状态以完成初始化,而在onDestroy()中释放所有系统资源。