前言

首次学习 Activity 的生命周期,似懂非懂。不过通过代码的方式可以大致理解一下,Activity 在创建的时候会执行那些方法,比如临时退出到主界面,手机息屏,新消息,来电等等状态时。会执行到的方法。

一个 Activity 的生命周期如下。

图片来自网络,侵删

这张图看的不是很懂,但是生命周期的方法有以下 6 个

  • onCreate
  • onStart
  • onResume
  • onPause
  • onStop
  • onDestroy

接下来,我们将通过代码的方式对这些方法进行应用。

示例

以下示例将这些方法进行演示一遍

package top.bestguo.androidlayout;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

/**
 * Created by He Guo on 2021/1/31.
 */

public class LifeCycleActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_life_cycle);
        Log.d("LifeCycle", "----onCreate----");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d("LifeCycle", "----onStart----");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d("LifeCycle", "----onResume----");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d("LifeCycle", "----onPause----");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d("LifeCycle", "----onStop----");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("LifeCycle", "----onDestroy----");
    }
}

进入 Activity

进入 Activity 时,共执行了三个方法。先 onCreate,再 onStart,最后 onResume

息屏或者进入其它应用

当手机处于息屏或者到其它程序中的状态时,执行了两个方法。先 onPause,再 onStop

当手机解锁或者回到当前的 Activity 时,也是执行了两个方法。先 onStart、再 onResume

退出

当退出这个 activity 时,会执行三个方法。先 onPause、再 onStop、最后是 onDestroy

总结

在应用了这些方法时,大概能猜测到部分方法的用途

onCreate 方法就是在初始化一些组件的时候,需要写在这些方法中。只会执行一次。
onStart 方法可以用于加载数据,即这个阶段是向服务器请求数据,或者是从本地来加载数据。
onPause 方法可以用于视频,比如手机息屏或者突然来电,遇到这种状态,我们需要对视频进行暂停。
onDestroy 也是只执行一次,具体用在什么地方还猜不到。

其它的生命周期的方法,还没猜到它们的应用场景。

好辣,差不多就这些咯。

项目的代码都在 AndroidStudy 的 github 仓库中。