Activity生命周期和状态 | 青训营笔记

151 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第3天

Activity的七个生命周期

分别是创建,开始,恢复,暂停,停止,重新开始,销毁。

  • onCreate:当Activity被第首次加载时执行。我们新启动一个程序的时候其主窗体的onCreate事件就会被执行。如果Activity被销毁后(onDestroy后),再重新加载进Task时,其onCreate事件也会被重新执行。
  • onStart:onCreate事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体前已经过去了一段时间,窗体已经执行了onStop事件,但是窗体和其所在进程并没有被销毁,用户再次重新查看窗体时会执行onRestart事件,之后会跳过onCreate事件,直接执行窗体的onStart事件。
  • onResume:onStart事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体时,窗体还没有被销毁,也没有执行过onStop事件(窗体还继续存在于Task中),则会跳过窗体的onCreate和onStart事件,直接执行onResume事件
  • onPause:activity被暂停或收回cpu和其他资源时调用。
  • onStop:当Activity对与用户不在可见的时候调用,可能是被另一个Activity覆盖,或者退回到桌面。
  • onDestory:在Activity被销毁前调用,这是Activity收到的最后调用,当Activity结束或者被系统销毁Activity实例的时候,会被调动该方法,
  • onRestart:在Activity被停止后再次启动的时候调用,比如从桌面回到应用中时,然后调用onStart方法().
image.png

Activity的四个生命状态

状态详解
Running当前显示在屏幕的Activity位于Activity任务栈的栈顶,用户可见可交互
Paused当前状态可见,但是已经失去界面焦点,此时Activity无法与用户交互
Stopped用户不可见也不交互,可能被覆盖或者在后台
Killed销毁界面,等待系统回收

代码,Logcat演示

public class MainActivity extends AppCompatActivity {

    private static final String TAG="tag";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG, "onCreate: onstart");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onCreate: onStart");

    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "onCreate: onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d(TAG, "onCreate: onPause");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d(TAG, "onCreate: onRestart");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d(TAG, "onCreate: onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d(TAG, "onCreate: onDestory------------");
    }
}

启动应用

activity创造,开始,恢复

image.png

按下home键返回主界面

activity暂停

image.png

返回应用

activity重新启动

image.png

按下退回键

activity被销毁

image.png