安卓——Activity的生命周期

这篇博客详细介绍了安卓Activity的生命周期,包括活动栈的概念、四种活动状态(活动、暂停、停止、非活动)及其转换过程,以及状态变化时的回调方法。讨论了如何使Activity进入暂停状态,如何处理横竖屏切换导致的数据丢失问题,并提到了Toolbar的使用方法。
摘要由CSDN通过智能技术生成

安卓的Activity活动栈

多个安卓Activity中的先后次序问题,需要用活动栈机制
在这里插入图片描述

如图:

  1. 每当新打开一个Activity时,会入栈,此时只有这个Activity是活动状态
  2. 除了栈顶的Activity其余的都处于暂停或者停止状态
  3. 如果内存不足,需要杀死Activity时,会释放资源使Activity处于非活动状态

安卓Activity的活动状态

分为四种:

  1. 活动状态:在活动栈处于栈顶的Activity,能被用户看到且可以交互,简单来说就是屏幕当前的Activity
  2. 暂停状态:当前Activity被部分遮挡,不再处于活动栈栈顶,并且无法交互。这里的部分遮挡是要被Activity遮挡,弹出框之类的不算被遮挡
  3. 停止状态:当前Activity被完全遮挡。比如按下HOME键或者跳转到别的页面
  4. 非活动状态:不是上面三种状态的Activity,例如被销毁的Activity

Activity活动状态切换触发回调方法

在这里插入图片描述

如图,转化过程如下:

  1. 当Activity生成时调用onCreate、onStart、onResume(相当于可以交互了),之后Activity开始运行
  2. 如果Acttvity处于暂停状态,会调用onPause
  3. Acitivty重新可以交互时调用onResume
  4. Activity变成停止状态,调用onPause和onStop
  5. Activity从停止状态变成活动状态,会调用onRestart和onStart和onResume方法
  6. 当前Activity从活动状态直接被销毁依次调用onPause、onStop、onDestory
  7. 当Activity处于暂停状态或者停止状态时,如果内存不足需要杀死Activty,进程终止,再打开需要重新生成

代码:

package net.onest.activitych0402;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {
   

    private EditText etMsg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("MainActivity","onCreate");
        etMsg = findViewById(R.id.et_msg);
        if (null != savedInstanceState){
   
            Log.e("onCreate",savedInstanceState.getString("msg"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值