Activity系列讲解---三大基本状态与七大生命周期函数

时间:2021-09-17 17:01:06

简介:四大组件之一,在应用中一个Activity可以用来表示一个界面,可以理解为用户可视化界面,一个android应用必须通过Activity来运行和启动。

1.三大基本状态与七大生命周期函数

Activity系列讲解---三大基本状态与七大生命周期函数

Activity系列讲解---三大基本状态与七大生命周期函数 Activity系列讲解---三大基本状态与七大生命周期函数

2.代码实现---LifeCycleActivity.class

/**
* Activity的三个状态和七大生命周期方法分析
*
*/
public class LifeCycleActivity extends AppCompatActivity { /**
* Activity创建时第一个调用的方法,通常我们在该方法中加载布局文件,初始化UI组件,事件注册等等
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_life_cycle);
System.out.println("Activity---->onCreate");
} /**
* 在onCreate()之后调用,用于显示界面,但用户还不能进行交互
*/
@Override
protected void onStart() {
super.onStart();
System.out.println("Activity---->onStart");
}
/**
* 在onStart()之后调用,该方法执行完成后,用户可以进行交互,当前Activity进入Resumed状态
* 当一个paused状态的activity被重新返回时,会再次调用该方法,让activity进入运行状态
*/ @Override
protected void onResume() {
super.onResume();
System.out.println("Activity---->onResume");
} /**
* 当其它activity(透明或窗口模式)进入时,会被调用,让当前activity进入paused状态(暂停状态)
* 当前activity还可见但不可交互,如果其它更高优先级的APP需要内存时,当前activity可能会被销毁(kill)
* 当前activity被返回时会调用onResume()
*/
@Override
protected void onPause() {
super.onPause();
System.out.println("Activity---->onPause");
} /**
* 当其它activity完全覆盖该activity时,会被调用,当前activity进入stop状态(停止状态)
* 当前activity不可见,如果其它更高优先级的APP需要内存时,当前activity可能会被销毁(kill)
* 当前activity被返回时会调用onRestart()
*/
@Override
protected void onStop() {
super.onStop();
System.out.println("Activity---->onStop");
} /**
* 当一个stopped状态的activity被返回时调用,之后再调用onResume方法进入运行状态
*/
@Override
protected void onRestart() {
super.onRestart();
System.out.println("Activity---->onCreate");
} /**
* 当前activity被销毁时调用,通常在该方法中用来释放资源
*/
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("Activity---->onDestory");
} }

  

3.运行结果分析:

(1)当启动actvity时,会调用onCreate()-->onStart()-->OnResume()

(2)当按Home键或者锁屏键时,会调用OnPause()-->OnStop()

(3)当按退出键时,会调用OnPause()-->OnStop()-->OnDestory()

(4)当解开锁屏时,会调用OnRestart()-->OnStart()-->OnResume()