Activity的生命周期和回调函数

参考:https://blog.****.net/hanhan1016/article/details/47977489

1.Activity的生命周期

(1)几个状态
活动状态:当前Activity位于前台,用户可见,可以获得焦点。
暂停状态:其他Activity位于前台,该Activity可见,不能获得焦点。
停止状态:该Activity不可见,不能获得焦点。
销毁状态:该Activity结束。

(2)生命周期方法
onCreate:创建Activity时被回调
onStart:启动Activity时被回调
onRestart:重新启动Activity时被回调
onResume:显示(可见)Activity时被回调。
onPause:暂停Activity时被回调
onStop:停止Activity时被回调
onDestroy:销毁Activity时被回调

(3)生命周期图
Activity的生命周期和回调函数
2.启动Activity
运行的生命周期函数为:
onCreate
onStart
onResume

Activity的生命周期和回调函数
3.按back键返回
运行的生命周期函数为:
onPause
onStop
onDestroy

Activity的生命周期和回调函数
4.按home键
运行的生命周期函数为:
onPause
onStop

Activity的生命周期和回调函数
然后再次进入
运行的生命周期函数为:
onRestart
onStart
onResume

Activity的生命周期和回调函数
5.finish方法
在Actyvity A 中的onResume方法中使用startActivity的方法进行开启另外一个Activity B,如:
[java] view plain copy
  1. protected void onResume() {  
  2.         // TODO Auto-generated method stub  
  3.         super.onResume();  
  4.         Log.d("zmq","onResume()");  
  5.         Intent intent = new Intent();  
  6.         intent.setClass(MainActivity.this, TestActivity.class);  
  7.         startActivity(intent);  
  8.         finish();  
  9.         Log.d("zmq","onResume() I hava run finish()");  
  10.     }  

此时从Activity A开始运行到打开另外一个Activity B,Activity A中生命周期函数调用顺序:
onCreate
onStart
onResume
onPause
onStop
onDestroy

Activity的生命周期和回调函数
之前一直以为执行到finish后,后面所有的代码都是不执行的,深深的错误~
然后按返回键退出,直接退出应用。

6.dialog对话框
在Activity A中启动一个对话框风格的Activity
Activity A运行的生命周期函数为:
onPause

Activity的生命周期和回调函数
点击返回键,Activity A运行的生命周期函数为:
onResume

Activity的生命周期和回调函数

7.打开一个一般的Activity,不做finish动作:
代码如:
[java] view plain copy
  1. @Override  
  2.     public void onClick(View v) {  
  3.         // TODO Auto-generated method stub  
  4.         if (v.getId() == R.id.enterBtn) {  
  5.             Intent intent = new Intent();  
  6.             intent.setClass(MainActivity.this, TestActivity.class);  
  7.             startActivity(intent);  
  8.         }  
  9.     }  

此时从Activity A开始运行到打开另外一个Activity B,Activity A中生命周期函数调用顺序:
onCreate
onStart
onResume
onPause
onStop

Activity的生命周期和回调函数
然后按返回键退出,Activity A运行的生命周期函数为:
Activity的生命周期和回调函数