Android Studio生命周期回调方法演示


形式:单独完成
题目:生命周期回调方法演示
要求:按照讲课笔记完成,在七个回调方法输出调试信息

(一) Activity生命周期回调方法

1、onCreate()回调方法

  • 您必须实现此回调,它会在系统首次创建 Activity 时触发。Activity 会在创建后进入“已创建”状态。在 onCreate() 方法中,您需执行基本应用启动逻辑,该逻辑在 Activity 的整个生命周期中只应发生一次。例如,onCreate() 的实现可能会将数据绑定到列表,将 Activity 与 ViewModel 相关联,并实例化某些类作用域变量。此方法会接收 savedInstanceState 参数,后者是包含 Activity 先前保存状态的 Bundle 对象。如果 Activity 此前未曾存在,Bundle 对象的值为 null。
  • 如果您有一个生命周期感知型组件与您的 Activity 生命周期相关联,该组件将收到 ON_CREATE 事件。系统将调用带有 @OnLifecycleEvent 注释的方法,以使您的生命周期感知型组件可以执行已创建状态所需的任何设置代码。

2、onStart()回调方法

  • onCreate() 退出后,Activity 将进入“已启动”状态,并对用户可见。此回调包含 Activity 进入前台与用户进行互动之前的最后准备工作。

3、onResume()回调方法

  • 系统会在 Activity 开始与用户互动之前调用此回调。此时,该 Activity 位于 Activity 堆栈的顶部,并会捕获所有用户输入。应用的大部分核心功能都是在 onResume() 方法中实现的。
  • onResume() 回调后面总是跟着 onPause() 回调。

4、onPause()回调方法

  • 当 Activity 失去焦点并进入“已暂停”状态时,系统就会调用 onPause()。例如,当用户点按“返回”或“最近使用的应用”按钮时,就会出现此状态。当系统为您的 Activity 调用 onPause() 时,从技术上来说,这意味着您的 Activity 仍然部分可见,但大多数情况下,这表明用户正在离开该 Activity,该 Activity 很快将进入“已停止”或“已恢复”状态。
  • 如果用户希望界面继续更新,则处于“已暂停”状态的 Activity 也可以继续更新界面。例如,显示导航地图屏幕或播放媒体播放器的 Activity 就属于此类 Activity。即使此类 Activity 失去了焦点,用户仍希望其界面继续更新。
  • 您不应使用 onPause() 来保存应用或用户数据、进行网络呼叫或执行数据库事务。有关保存数据的信息,请参阅保存和恢复 Activity 状态。
  • onPause() 执行完毕后,下一个回调为 onStop()或 onResume(),具体取决于 Activity 进入“已暂停”状态后发生的情况。

5、onStop()回调方法

  • 当 Activity 对用户不再可见时,系统会调用 onStop()。出现这种情况的原因可能是 Activity 被销毁,新的 Activity 启动,或者现有的 Activity 正在进入“已恢复”状态并覆盖了已停止的 Activity。在所有这些情况下,停止的 Activity 都将完全不再可见。
  • 系统调用的下一个回调将是 onRestart()(如果 Activity 重新与用户互动)或者 onDestroy()(如果 Activity 彻底终止)。

6、onRestart()回调方法

  • 当处于“已停止”状态的 Activity 即将重启时,系统就会调用此回调。onRestart() 会从 Activity 停止时的状态恢复 Activity。
  • 此回调后面总是跟着 onStart()。

7、onDestroy()回调方法

  • 系统会在销毁 Activity 之前调用此回调。
  • 此回调是 Activity 接收的最后一个回调。通常,实现 onDestroy() 是为了确保在销毁 Activity 或包含该 Activity 的进程时释放该 Activity 的所有资源。

(二)回调方法演示

1、创建安卓应用

  • 基于Empty Activity模板
    在这里插入图片描述
  • 配置项目信息
    在这里插入图片描述
  • 单击【Finish】按钮,完成项目初始化
    在这里插入图片描述

2、主布局资源文件

  • 将约束布局改成线性布局,并设置标签控件相关属性
    在这里插入图片描述

3、字符串资源文件

  • strings.xml文件里修改app_name变量值,添加新变量test_life_cycle
    在这里插入图片描述

4、主界面类实现功能

  • MainActivity里定义标记常量TAG
    在这里插入图片描述
  • onCreateonDestroy回调方法里输出一条调试信息
    在这里插入图片描述
  • onStartonStop回调方法里输出一条调试信息
    在这里插入图片描述
  • onResumeonPause回调方法里输出一条调试信息
    在这里插入图片描述
  • 在onRestart回调方法里输出一条调试信息(在完全不可见⟹⟹完全可见的过程中)
    在这里插入图片描述
  • 查看MainAcitivity源代码
package net.cgh.lifecycle;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
    private final static String TAG = "life_cycle";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG,"onCreate invoked.");
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart invoked.");
    }
    @Override
    protected  void onResume(){
        super.onResume();
        Log.d(TAG,"onResume invoked.");
    }
    @Override
    protected void onPause(){
        super.onPause();
        Log.d(TAG,"onPause invoked.");
    }
    @Override
    protected void onStop(){
        super.onStop();
        Log.d(TAG,"onStop invoked.");
    }
    @Override
    protected void onRestart(){
        super.onRestart();
        Log.d(TAG,"onRestart invoked.");
    }
    @Override
    protected void onDestroy(){
        super.onDestroy();
        Log.d(TAG,"onDestroy invoked.");
    }
}

5、添加消息过滤器

  • 为了更好地查看本应用的调试信息,需要添加消息过滤器。创建消息过滤器life_cycle_filter,日志标记为life_cycle
    在这里插入图片描述

6、启动应用,查看日志

  • 启动应用,查看LogCat里的消息(然后我们切换应用状态:前台⟹ \Longrightarrow⟹后台⟹ \Longrightarrow⟹前台⟹ \Longrightarrow⟹关闭)
    在这里插入图片描述

  • 单击【Home】键,返回手机应用桌面
    在这里插入图片描述

  • 此时,应用窗口被桌面遮住,查看日志消息
    在这里插入图片描述

  • 单击【Overview】键,查看最近应用列表
    在这里插入图片描述

  • 最近打开的应用就是【生命周期】
    在这里插入图片描述

  • 单击在后台运行的【生命周期】应用,其窗口又重回前台,查看日志信息
    在这里插入图片描述

  • 按【Back】按键,其实无法关闭【生命周期】应用
    在这里插入图片描述

  • 应该按【Overview】键,选中【生命周期】应用向上滑动,即可关闭该应用
    在这里插入图片描述

  • 从日志信息可以看出三层架构
    1、最外层(onCreate - onDestory)——(存在 - 不存在)
    2、中间层(onStart - onStop)—— (可见 - 不可见)
    3、最内层(onResume - onPause)—— (可交互 - 不可交互)

  • 查看操作录屏
    在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio 是一个用于开发 Android 应用程序的集成开发环境(IDE),它提供了丰富的工具和功能帮助开发者轻松地创建和管理 Android 应用程序。 在 Android 应用程序的开发过程中,每个组件(例如 Activity、Service、BroadcastReceiver 等)都有其自己的生命周期生命周期是指组件从创建到销毁的整个过程,包括组件的各个阶段和各个阶段的状态。了解组件的生命周期非常重要,因为它们决定了应用程序的行为和性能。 以下是 Android 中一些常见组件的生命周期: - Activity 生命周期:onCreate()、onStart()、onResume()、onPause()、onStop()、onRestart()、onDestroy()。 - Service 生命周期:onCreate()、onStartCommand()、onBind()、onUnbind()、onDestroy()。 - BroadcastReceiver 生命周期:onReceive()。 当应用程序中的组件发生某些事件时,系统会自动调用相应的生命周期方法。开发人员可以重写这些方法来处理事件和控制组件的行为。此外,开发人员还可以在组件的生命周期中注册和注销其他组件。 在 Android Studio 中,可以通过调试工具和日志记录来跟踪和分析组件的生命周期。这些工具可以帮助开发者识别和解决应用程序中的错误和性能问题。 ### 回答2: Android Studio是使用Java编程语言进行Android应用程序开发的集成开发环境(IDE)。在Android Studio中,Activity生命周期是非常重要的,因为Activity是应用程序面向用户的主要界面元素。Activity的生命周期方法包括以下几个: 1. onCreate():当Activity第一次创建时调用。在此方法中,可以完成一些初始化的操作,比如加载布局、绑定事件监听器及获取数据等。 2. onStart():Activity启动的时候执行此方法。在此方法中,可以执行一些启动Activity前的准备工作,例如初始化变量等。 3. onResume():当Activity处于前台可见状态时调用该方法。可以在此方法中启动一些需要用户交互的操作,例如动画等。 4. onPause():当Activity被遮挡、暂停或停止时调用该方法。在这个方法中,可以执行保存数据、清理资源、停止动画等操作。 5. onStop():当Activity不再可见时调用该方法。在这个方法中,可以释放一些资源,关闭连接等等。 6. onRestart():当Activity被重新启动时,调用该方法。在这个方法中,可以执行一些重新启动Activity前的准备工作。 7. onDestroy():当Activity被销毁时调用该方法。在这个方法中,可以执行清理回收资源的操作,例如取消注册等。 以上是Activity的生命周期方法。当Activity生命周期结束时,如果需要保持数据,可以采用启动一个新的Activity,然后在新的Activity的onActivityResult方法中得到数据的方式来保存数据,从而避免数据的丢失。Android Studio充分利用了Activity生命周期的特性,使得开发者能够在应用程序开发过程中更加灵活地操作Activity,提高应用程序的用户体验度。 ### 回答3: Android Studio生命周期是指Android应用程序在运行过程中,系统自动调用的一系列方法。这些方法包括应用程序的创建、启动、暂停、停止以及销毁等过程。Android Studio生命周期是为了维护应用程序的稳定性和性能而设计的。 生命周期包括以下方法: 1. onCreate():在应用程序创建时被调用,用于初始化应用程序的各种组件。例如:活动的初始化、绑定数据源、读取配置文件等。 2. onStart():在应用程序启动时被调用,用于启动应用程序的各种组件。例如:启动服务、启动线程、连接网络等。 3. onResume():在应用程序进入可见状态时被调用,用于更新应用程序的用户界面。例如:更新UI、播放音频、启动动画等。 4. onPause():在应用程序失去焦点或暂停时被调用,用于暂停应用程序的各类操作。例如:暂停音频、禁止动画、释放资源等。 5. onStop():在应用程序被停止时被调用,用于停止应用程序的各种组件。例如:停止服务、停止线程、断开网络等。 6. onDestroy():在应用程序销毁时被调用,用于清理应用程序的各种资源。例如:释放内存、关闭数据库、停止所有服务等。 以上操作可能会在任何时间被系统中断,例如来电、对话框、弹窗等。在此情况下,系统会对应用程序取消操作并恢复之前的状态。 生命周期是应用程序开发中十分重要和基础的概念。开发者需要结合实际操作以及了解实际应用场景,来合理的调用各种生命周期,保障应用程序的运行稳定性和用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值