Android 中 Activity 状态变化示例

androidmobile developmentapps/applications更新于 2026/2/6 23:52:17

简介

安装在移动设备上的每个 Android 应用程序都包含一个或多个 Activity。这些 Activity 用于在 Android 应用程序中执行某些操作。Android 应用程序中使用的 Activity 都有各自的生命周期方法,即使 Activity 执行某些操作,这些方法也会被调用。Android 应用程序中 Activity 的状态发生变化时,会调用七种不同的方法。本文将结合示例,介绍 Android 应用程序中不同的 Activity 状态变化。

Android 应用程序中 Activity 的不同状态

Android 应用程序中显示的 Activity 有七种不同的状态。每个状态的调用都基于该 Activity 在 Android 应用程序中执行的特定事件。以下是 Activity 在特定条件下触发的七种不同方法。

  • onCreate()

  • onStart()

  • onRestart()

  • onResume()

  • onPause()

  • onStop()

  • onDestory()

现在我们将分别介绍 Android 应用中使用的每个 Activity 生命周期方法。

onCreate()

onCreate() 方法是 Activity 创建时调用的第一个方法。它负责初始化 Activity 并执行任何必要的设置。在此方法中,Activity 会收到一个 Bundle 对象,其中包含启动时发送给 Activity 的所有数据。 onCreate() 方法还会设置 Activity 的布局,并实例化 Activity 所需的所有视图。

onStart()

onStart() 方法在 onCreate() 方法之后调用,此时 Activity 即将对用户可见。在此阶段,Activity 已准备好开始与用户交互。在此阶段,可以配置 Activity 的视图并注册任何监听器。

onResume()

当 Activity 可见并准备好与用户交互时,会调用 onResume() 方法。在此阶段,Activity 位于前台,用户可以与其交互。在此阶段,Activity 可以检索需要显示的任何数据,并响应用户输入。

onPause()

当 Activity 不再对用户可见时,会调用 onPause() 方法。在此阶段,Activity 仍处于前台,但不再与用户交互。在此阶段,Activity 可以保存任何需要保留的数据,并释放任何不再需要的资源。

onStop()

当 Activity 不再可见且即将被销毁时,会调用 onStop() 方法。在此阶段,Activity 不再处于前台,其所有资源都已释放。在此阶段,Activity 可以执行销毁前所需的任何最终清理操作。

onRestart()

当 Activity 停止后重新启动时,会调用 onRestart() 方法。在此阶段,Activity 再次可见并可以与用户交互。在此阶段,Activity 可以检索需要显示的任何数据,并响应用户输入。

onDestroy()

当 Activity 即将被销毁时,会调用 onDestroy() 方法。在此阶段,Activity 不再处于前台,其所有资源都已释放。在此阶段,Activity 可以执行销毁前所需的任何最终清理工作。

实现

我们将创建一个简单的应用程序,在其中调用 Android 应用程序中的所有生命周期方法,并显示每个方法的 Toast 消息,以便在触发任何方法时,我们都能在 Android 应用程序中看到 Toast 消息。

步骤 1 - 在 Android Studio 中创建新项目

如下图所示,导航到 Android Studio。在下方屏幕中,点击"新建项目"以创建一个新的 Android Studio 项目。

点击"新建项目"后,您将看到以下屏幕。

在此屏幕中,我们只需选择"空活动"并点击"下一步"。点击"下一步"后,您将看到以下屏幕。

在此屏幕中,我们只需指定项目名称。然后,软件包名称将自动生成。

注意 - 确保选择 Java 作为语言。

指定所有详细信息后,点击"完成"以创建一个新的 Android Studio 项目。

项目创建完成后,我们将看到两个打开的文件,即 activity_main.xml 和 MainActivity.java 文件。

步骤 3 - 使用 activity_main.xml

导航到 activity_main.xml。如果此文件不可见,请打开此文件。在左侧窗格中,导航至 app>res>layout>activity_main.xml 以打开此文件。打开此文件后,将以下代码添加到其中。代码中添加了注释,以便您详细了解。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/idRLLayout"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context=".MainActivity">
   <!--Heading Text View-->
   <TextView
       android:id="@+id/idTVHeading"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_centerInParent="true"
       android:layout_centerHorizontal="true"
       android:text="Activity State Changes in Android"
       android:textAlignment="center"
       android:textColor="@color/black"
       android:textSize="20sp"
       android:textStyle="bold" />
</RelativeLayout>

说明:在上面的代码中,我们只是创建了一个根布局作为相对布局,并在其中创建了一个简单的文本视图来显示应用程序的标题。我们将此文本视图与屏幕中心对齐。

步骤 4:使用 MainActivity.java 文件。

导航到 MainActivity.java。如果此文件不可见,请打开此文件。在左侧窗格中,导航至 app>res>layout>MainActivity.java 以打开此文件。打开此文件后,将以下代码添加到其中。代码中添加了注释,以便您详细了解。

package com.example.androidjavaapp;

import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // 在下一行显示 toast 消息
    Toast.makeText(this, "On Create 方法已调用。", Toast.LENGTH_SHORT).show();
    }
    
    // 在下一行调用 start 方法
    @Override
    protected void onStart() {
    super.onStart();
    // 在下一行显示 toast 消息。
    Toast.makeText(this, "On Start 方法已调用。", Toast.LENGTH_SHORT).show();
    }
    
    // 在下一行调用 start 方法
    @Override
    protected void onStop() {
    super.onStop();
    // 在下一行显示 toast 消息。
    Toast.makeText(this, "On Stop 方法已调用。", Toast.LENGTH_SHORT).show();
    }
    
    // 在下一行调用 start 方法
    @Override
    protected void onRestart() {
    super.onRestart();
    // 在下一行显示 toast 消息。
    Toast.makeText(this, "On Restart 方法已调用。", Toast.LENGTH_SHORT).show();
    }
    
    // 在下一行调用 start 方法
    @Override
    protected void onResume() {
    super.onResume();
    // 在下一行显示 toast 消息。
    Toast.makeText(this, "On Resume 方法已调用。", Toast.LENGTH_SHORT).show();
    }
    
    // 在下一行调用 start 方法
    @Override
    protected void onPause() {
    super.onPause();
    // 在下一行显示 toast 消息。
    Toast.makeText(this, "On Pause 方法已调用。", Toast.LENGTH_SHORT).show();
    }
    
    // 在下面一行调用 start 方法
    @Override
    protected void onDestroy() {
    super.onDestroy();
    // 在下面一行显示 Toast 消息。
    Toast.makeText(this, "On Destory 方法已调用。", Toast.LENGTH_SHORT).show();
    }
}

说明 − 在上面的代码中,我们可以看到 onCreate 方法,该方法正在扩展我们需要显示的布局文件。在这个 onCreate 方法中,我们显示了一个 Toast 消息。同样,我们调用了 Activity 生命周期的所有七个方法,并为每个方法显示一个 Toast 消息。

添加上述代码后,现在只需点击顶部栏中的绿色图标即可在移动设备上运行我们的应用程序。

注意 − 确保您已连接到真实设备或模拟器。

输出

结论

在上面的教程中,我们了解了 Android 应用程序中不同的 Activity 生命周期方法。我们还研究了如何在 Android 应用程序中使用这些方法。


相关文章