activity的生命周期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activity的生命周期相关的知识,希望对你有一定的参考价值。
在看了网上的资料后,activity的生命周期也有了大致的理解,以下是官网的activity的生命周期图。
这张图列出了activity生命周期中的主要方法,正常的流程是:
onCreate-->onStart-->onResume-->onPause-->onStop-->onDestory
这些方法表示的含义为:
onCreate:Activity的创建
onStart:Activity开始执行,但还未显示
onRestart:Activity重新开始执行
onResume:Activity处于运行状态
onPause:Activity暂停,但还处于可见状态
onStop:Activity停止,处于不可见状态
onDestory:Activity被销毁
在MainActivity中列出所有方法并打上标记,代码如下:
public class MainActivity extends Activity { private Button btn; private static final String TAG="ActivityDemo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e(TAG, "onCreate"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.e(TAG, "onStart"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.e(TAG, "onRestart"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.e(TAG, "onResume"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.e(TAG, "onPause"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.e(TAG, "onStop"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.e(TAG, "onDestroy"); } }
首次启动后,输出为
:
可以看出,程序首次启动后,生命周期方法的执行顺序为:
onCreate-->onStart-->onResume
按下返回按钮后,输出为
生命周期的执行顺序为:
onPause-->onStop-->onDestory
按下HOME键或者锁屏,输出为
生命周期的执行顺序为:
onPause-->onStop
再次打开或者解锁屏幕(在当前Activity锁屏后解锁),输出为
生命周期的执行顺序为:
onRestart-->onStart-->onResume
页面跳转生命周期的执行
跳转到dialog界面,使界面处于部分遮盖状态,但失去了焦点,如图
跳转到dialog界面的输出为
生命周期的执行顺序为:
onPause
跳转到另一个Activity时,当前Activity被完全遮盖时,输出为
生命周期的执行顺序为:
onPause-->onStop
其实Activity的生命周期大致可以分为如下几个过程:
1.启动activity到退出:onCreate-->...-->onDestory
2.activity运行状态到失去焦点:onResume-->onPause
3.activity失去焦点到获得焦点:onPause-->onResume
4.activity运行状态到不可见:onResume-->onPause-->onStop
5.activity不可见到运行状态:onStop-->onRestart-->onStart-->onResume
6.处于onPause或者onStop状态的Activity被系统杀死后重新可见:系统依次调用:onCreate-->onStart-->onResume,进入运行状态
7.退出当前Activity:onResume-->onPause--onStop-->onDestory
以上是关于activity的生命周期的主要内容,如果未能解决你的问题,请参考以下文章