Android开发之Activity的生命周期

前置知识

生命周期主要指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,调用了onCreateonStartonResume三个函数。
在这里插入图片描述
若我们点击下方导航栏的中键回到桌面,则会调用onPauseonStop两个函数。
在这里插入图片描述

当我们点击APP图标再次回到APP时,则调用onRestartonStartonResume三个函数。
在这里插入图片描述

点击按钮跳转到另一个activity时也是一样的。
在这里插入图片描述
而我们一直点击下方工具栏返回键退回到桌面时,则会调用onDestroy销毁activity。
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值