Android - Aktivitäten

Eine Aktivität stellt einen einzelnen Bildschirm mit einer Benutzeroberfläche dar, genau wie das Fenster oder der Rahmen von Java. Die Android-Aktivität ist die Unterklasse der ContextThemeWrapper-Klasse.

Wenn Sie mit der Programmiersprache C, C ++ oder Java gearbeitet haben, müssen Sie gesehen haben, dass Ihr Programm von startet main()Funktion. Sehr ähnlich initiiert das Android-System sein Programm mit in einemActivityBeginnen Sie mit einem Aufruf der Rückrufmethode onCreate () . Es gibt eine Folge von Rückrufmethoden, mit denen eine Aktivität gestartet wird, und eine Folge von Rückrufmethoden, mit denen eine Aktivität abgebrochen wird, wie im folgenden Diagramm zum Aktivitätslebenszyklus dargestellt: (Mit freundlicher Genehmigung von android.com )

Die Aktivitätsklasse definiert die folgenden Rückrufe, dh Ereignisse. Sie müssen nicht alle Rückrufmethoden implementieren. Es ist jedoch wichtig, dass Sie alle verstehen und diejenigen implementieren, die sicherstellen, dass sich Ihre App so verhält, wie Benutzer es erwarten.

Sr.Nr. Rückruf & Beschreibung
1

onCreate()

Dies ist der erste Rückruf, der beim ersten Erstellen der Aktivität aufgerufen wird.

2

onStart()

Dieser Rückruf wird aufgerufen, wenn die Aktivität für den Benutzer sichtbar wird.

3

onResume()

Dies wird aufgerufen, wenn der Benutzer mit der Anwendung interagiert.

4

onPause()

Die angehaltene Aktivität empfängt keine Benutzereingaben und kann keinen Code ausführen und wird aufgerufen, wenn die aktuelle Aktivität angehalten und die vorherige Aktivität fortgesetzt wird.

5

onStop()

Dieser Rückruf wird aufgerufen, wenn die Aktivität nicht mehr sichtbar ist.

6

onDestroy()

Dieser Rückruf wird aufgerufen, bevor die Aktivität vom System zerstört wird.

7

onRestart()

Dieser Rückruf wird aufgerufen, wenn die Aktivität nach dem Stoppen neu gestartet wird.

Beispiel

In diesem Beispiel werden Sie durch einfache Schritte geführt, um den Lebenszyklus der Android-Anwendungsaktivität anzuzeigen. Führen Sie die folgenden Schritte aus, um die im Kapitel " Hello World-Beispiel" erstellte Android-Anwendung zu ändern :

Schritt Beschreibung
1 Sie werden Android Studio verwenden , um eine Android - Anwendung zu erstellen und als Namen Helloworld unter einem Paket com.example.helloworld wie in der erklärt Hallo Welt Beispiel Kapitel.
2 Ändern Sie die Hauptaktivitätsdatei MainActivity.java wie unten erläutert. Lassen Sie den Rest der Dateien unverändert.
3 Führen Sie die Anwendung aus, um den Android-Emulator zu starten, und überprüfen Sie das Ergebnis der in der Anwendung vorgenommenen Änderungen.

Es folgt der Inhalt der geänderten Hauptaktivitätsdatei src/com.example.helloworld/MainActivity.java. Diese Datei enthält alle grundlegenden Lebenszyklusmethoden. DasLog.d() Methode wurde verwendet, um Protokollnachrichten zu generieren -

package com.example.helloworld;

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

public class MainActivity extends Activity {
   String msg = "Android : ";
   
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(msg, "The onCreate() event");
   }

   /** Called when the activity is about to become visible. */
   @Override
   protected void onStart() {
      super.onStart();
      Log.d(msg, "The onStart() event");
   }

   /** Called when the activity has become visible. */
   @Override
   protected void onResume() {
      super.onResume();
      Log.d(msg, "The onResume() event");
   }

   /** Called when another activity is taking focus. */
   @Override
   protected void onPause() {
      super.onPause();
      Log.d(msg, "The onPause() event");
   }

   /** Called when the activity is no longer visible. */
   @Override
   protected void onStop() {
      super.onStop();
      Log.d(msg, "The onStop() event");
   }

   /** Called just before the activity is destroyed. */
   @Override
   public void onDestroy() {
      super.onDestroy();
      Log.d(msg, "The onDestroy() event");
   }
}

Eine Aktivitätsklasse lädt die gesamte UI-Komponente mithilfe der XML-Datei, die im Ordner res / layout des Projekts verfügbar ist . Die folgende Anweisung lädt UI-Komponenten aus der Datei res / layout / activity_main.xml :

setContentView(R.layout.activity_main);

Eine Anwendung kann eine oder mehrere Aktivitäten ohne Einschränkungen haben. Jede Aktivität, die Sie für Ihre Anwendung definieren, muss in Ihrer AndroidManifest.xml- Datei deklariert werden, und die Hauptaktivität für Ihre App muss im Manifest mit einem <intent-filter> deklariert werden, der die MAIN-Aktion und die LAUNCHER-Kategorie wie folgt enthält:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.tutorialspoint7.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Wenn für eine Ihrer Aktivitäten weder die Hauptaktion noch die Kategorie LAUNCHER deklariert sind, wird Ihr App-Symbol nicht in der Liste der Apps auf dem Startbildschirm angezeigt.

Lassen Sie uns versuchen, unsere modifizierten auszuführen Hello World!Anwendung haben wir gerade geändert. Ich nehme an, Sie hatten Ihre erstelltAVDwährend der Einrichtung der Umgebung. Um die App von Android Studio aus auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in

der Symbolleiste auf das Symbol Ausführen . Android Studio installiert die App auf Ihrer AVD und startet sie. Wenn mit Ihrem Setup und Ihrer Anwendung alles in Ordnung ist, wird das Emulator-Fenster angezeigt und Sie sollten die folgenden Anmeldemeldungen sehenLogCat Fenster im Android Studio -

08-23 10:32:07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event
08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event

Versuchen wir, auf die Schaltfläche zum Sperren des Bildschirms im Android-Emulator zu klicken, um die folgenden Ereignismeldungen zu generieren LogCat Fenster im Android Studio:

08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event

Lassen Sie uns erneut versuchen, Ihren Bildschirm auf dem Android-Emulator zu entsperren, und es werden folgende Ereignismeldungen in generiert LogCat Fenster im Android Studio:

08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event

Lassen Sie uns als Nächstes erneut versuchen,

im Android-Emulator auf die Schaltfläche Zurück zu klicken, um die folgenden Ereignismeldungen zu generierenLogCat Fenster in Android Studio und dies schließt den Aktivitätslebenszyklus für eine Android-Anwendung ab.

08-23 10:37:24.806 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:37:25.668 4480-4480/com.example.helloworld D/Android :: The onStop() event
08-23 10:37:25.669 4480-4480/com.example.helloworld D/Android :: The onDestroy() event