Android 中的活动状态变化及示例


介绍

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

Android 应用程序中活动的不同状态

要在 Android 应用程序中显示的活动有七种不同的状态。每种状态都根据该活动在 Android 应用程序中执行的特定事件进行命名。以下是活动在特定条件下触发的七种不同方法。

  • onCreate()

  • onStart()

  • onRestart()

  • onResume()

  • onPause()

  • onStop()

  • onDestory()

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

onCreate()

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

onStart()

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

onResume()

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

onPause()

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

onStop()

onStop() 方法在活动不再可见且即将被销毁时调用。这是活动不再位于前台并且其所有资源都已释放的阶段。在此阶段,活动可以在被销毁之前执行任何最终清理工作。

onRestart()

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

onDestroy()

onDestroy() 方法在活动即将被销毁时调用。这是活动不再位于前台并且其所有资源都已释放的阶段。在此阶段,活动可以在被销毁之前执行任何最终清理工作。

实现

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

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

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

点击“新建项目”后,您将看到下面的屏幕。

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

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

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

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

创建项目后,我们将看到 2 个打开的文件,即 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);
      // on below line displaying toast message
      Toast.makeText(this, "On Create Method called.", Toast.LENGTH_SHORT).show();
   }

   // on below line calling on start method
   @Override
   protected void onStart() {
      super.onStart();
      // displaying toast message on below line.
      Toast.makeText(this, "On Start Method called.", Toast.LENGTH_SHORT).show();
   }

   // on below line calling on start method
   @Override
   protected void onStop() {
      super.onStop();
      // displaying toast message on below line.
      Toast.makeText(this, "On Stop Method called.", Toast.LENGTH_SHORT).show();
   }

   // on below line calling on start method
   @Override
   protected void onRestart() {
      super.onRestart();
      // displaying toast message on below line.
      Toast.makeText(this, "On Restart Method called.", Toast.LENGTH_SHORT).show();
   }

   // on below line calling on start method
   @Override
   protected void onResume() {
      super.onResume();
      // displaying toast message on below line.
      Toast.makeText(this, "On Resume Method called.", Toast.LENGTH_SHORT).show();
   }

   // on below line calling on start method
   @Override
   protected void onPause() {
      super.onPause();
      // displaying toast message on below line.
      Toast.makeText(this, "On Pause Method called.", Toast.LENGTH_SHORT).show();
   }

   // on below line calling on start method
   @Override
   protected void onDestroy() {
      super.onDestroy();
      // displaying toast message on below line.
      Toast.makeText(this, "On Destory Method called.", Toast.LENGTH_SHORT).show();
   }
}

说明 - 在上面的代码中,我们可以看到 onCreate 方法,在其中我们正在填充我们必须显示的布局文件。在此 onCreate 方法中,我们正在显示吐司消息。类似地,我们正在调用活动生命周期的所有七个方法,并且我们正在为每个方法显示吐司消息。

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

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

输出

结论

在以上教程中,我们介绍了 Android 应用程序中不同的活动生命周期方法。我们还介绍了如何在 Android 应用程序中使用这些方法。

更新于:2023年3月30日

881 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告