前置知识
生命周期主要指Activity界面的各个状态,这里直接引用另外一位博主的文章来说明一下:
Activity的四种状态:
1.Running状态:一个新的Activity的启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并,可与用户交互的激活装态;
2.Paused状态:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持连接,系统继续维护其内部状态,他仍然可见,但是它已经失去焦点,故不可与用户交互。
3.Stopped状态:当Activity不可见时,Activity处于Stopped状态。当Activity处于此状态时,一定要保存当前数据和当前的UI状态,否则一旦Activity退出或关闭时,当前的数据和UI状态就丢失了。
4.Killed状态: Activity被杀掉以后或者被启动以前,处于Killed状态。这是Activity已从Activity堆栈中移除,需要重新启动CIA可以显示和使用。
以上四种状态,Running状态和Paused状态是课件的,Stopped状态和Killed状态时不可见的。
————————————————
版权声明:本文为CSDN博主「夏末_那场未盛开的梦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014419014/article/details/78840218
主要的生命周期函数
从上图也可以看到,生命周期函数主要有下列几个:
onCreat
创建
onStart
启动
onRestart
重启
onResume
取得焦点
onPause
暂停
onStop
停止
onDestroy
摧毁
我们可以在代码里重写这些函数,然后在其中加入调试信息:
package com.example.activitybase;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, TAG+": onCreate");
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, TAG+": onStart");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(TAG, TAG+": onRestart");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, TAG+": onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, TAG+": onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, TAG+": onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, TAG+": onDestroy");
}
public void startActivity2(View view) {
startActivity(new Intent(this, MainActivity2.class));
}
}
验证生命周期函数的调用情况
首先直接在虚拟机上启动APP,调用了onCreate
、onStart
和onResume
三个函数。
若我们点击下方导航栏的中键回到桌面,则会调用onPause
和onStop
两个函数。
当我们点击APP图标再次回到APP时,则调用onRestart
、onStart
和onResume
三个函数。
点击按钮跳转到另一个activity时也是一样的。
而我们一直点击下方工具栏返回键退回到桌面时,则会调用onDestroy
销毁activity。