Activity的生命周期,指一个Activity从创建到最后注销的整个存在过程的几个阶段,主要有以下7个阶段:onCreate()、onRestart()、onStart()、onResume()、onPause()、onStop()、onDestroy()。
在google Android的文档中介绍这几个方法时用一个层次结构展示了各方法之间的存在关系层次:
同时,也用流程图说明了一个activity的整个生命周期:
简单以两个Activity间的切换来说(同时对照流程图):
1.当一个Activity被打开时,将依次执行:onCreate()、onStart()、onResume()三个方法;
另外:按文档的说明,onStart()是在Activity被用户看到时调用的;
onResume()开始与用户交互;
2.此时的第一个Activity中启动第二个Activity时,将依次执行:(First指第一个Activity,Second指第二个)
First.onPause(); //在要调用另一个Activity时调用;
Second.onCreate();
Second.onStart(); //被看到
Second.onResume();
First.onStop(); //对应onStart(),是在Activity对用户不可见时(注1)调用;
3.此时第二个Activity启动到第一个的状态之前的状态,这时返回到第一个Activity,将执行:
Second.onPause();
First.onRestart(); //不是第一次启动,即:被onStop()的Activity;
First.onStart();
First.onResume();
Second.onStop();
Second.onDestory(); //两种情况会调用:(1) 调用finish();(2) 系统为了节省空间;
注1:如果启动的是一个窗口化Activity,如一个退出确认,则当前Activity并不是不可见,只是不能操作了,这时不会调用onStop();对于窗口化的Activity,是在Manifest.xml中注册Activity时加上<android:theme="@android:style/Theme.Dialog">即:对话框式style