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 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.