8 Activities und deren Lebenszyklus

Sowohl Activities als auch Fragments sind wesentliche Bausteine in Android. Sie haben jeweils eigene Lebenszyklen und spezielle Rollen in der Struktur einer Android-App. Hier sind die Hauptunterschiede:

8.1 Activity

8.2 Fragment

Zusammenfassend lässt sich sagen, dass Activities und Fragments ähnliche Rollen spielen, aber auf unterschiedliche Skalen. Activities sind für größere Aufgaben und Übergänge zwischen verschiedenen App-Funktionen verantwortlich, während Fragments eher dazu dienen, dynamische und anpassungsfähige Benutzeroberflächen innerhalb einer bestimmten Activity zu schaffen. Beide sind jedoch unerlässlich für das Erstellen effektiver und benutzerfreundlicher Android-Apps.

Eine Activity in Android repräsentiert eine einzelne Bildschirmoberfläche, die der Benutzer sehen und mit der er interagieren kann. Jede Activity hat einen spezifischen Lebenszyklus, der definiert, wie die Activity erstellt, gestartet, angehalten, fortgesetzt und zerstört wird. Dieser Lebenszyklus wird durch eine Reihe von Methoden repräsentiert, die das Android-System aufruft, wenn eine Activity von einem Zustand in den anderen übergeht.

8.3 Hauptmethoden des Lebenszyklus einer Activity

@startuml
title Android Activity Lifecycle

[*] --> onCreate : App startet\noder Activity wird erstellt
onCreate --> onStart : Activity wird gestartet
onStart --> onResume : Activity wird fortgesetzt
onResume --> Running : Activity läuft

Running --> onPause : Activity wird pausiert
onPause --> onStop : Activity wird gestoppt
onStop --> onDestroy : Activity wird zerstört
onDestroy --> [*] : Activity wird beendet

onStop --> onRestart : Activity wird neu gestartet
onRestart --> onStart : Activity wird gestartet

onPause --> onResume : Activity wird fortgesetzt

@enduml

8.4 Weitere Lifecycle Hooks

Es gibt auch andere Lebenszyklusmethoden wie onRestart(), die aufgerufen wird, wenn eine gestoppte Activity wieder gestartet wird. Diese Methode wird jedoch nicht so häufig verwendet wie die anderen.

Jede dieser Methoden gibt Ihnen die Möglichkeit, Ihre Anwendung an die spezifischen Zustände des Lebenszyklus anzupassen und sicherzustellen, dass Ihre Anwendung sich korrekt verhält, wenn der Benutzer zwischen verschiedenen Activities wechselt und wenn das System Ressourcen verwaltet.

Es ist wichtig zu beachten, dass der Lebenszyklus einer Activity eng mit dem sichtbaren und interaktiven Zustand der Activity verbunden ist und dass der Lebenszyklus dazu dient, sicherzustellen, dass Ihre Anwendung die Benutzererfahrung respektiert und die Systemressourcen effizient verwaltet.

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items 
        // to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

Hier ist eine sehr grundlegende Android Activity. onCreate() ist die Methode, die aufgerufen wird, wenn die Activity erstellt wird. Innerhalb dieser Methode wird in der Regel setContentView() aufgerufen, um das Layout für die Activity festzulegen. Das Layout wird normalerweise in einer separaten XML-Datei definiert.

onCreateOptionsMenu() ist eine Methode, die das Menü für diese Activity erstellt. Es bläht das Menü auf, indem es `getMenuInflater().inflate() aufruft und das Menülayout, das in einer separaten XML-Datei definiert ist, und das Menüobjekt, das diese Methode erhält, übergibt.

Bitte stellen Sie sicher, dass Sie den oben genannten Code an Ihre spezifischen Anforderungen anpassen. Das obige Beispiel ist sehr grundlegend und enthält möglicherweise nicht alle Funktionen, die Sie benötigen.

Wenn Sie eine andere Sprache oder ein anderes Framework verwenden, lassen Sie es mich bitte wissen, und ich kann Ihnen ein spezifischeres Beispiel geben.

Die Lifecycle-Methoden in Android ermöglichen es Ihnen, den Zustand Ihrer App während ihrer Ausführung zu steuern. Im Folgenden finden Sie eine kurze Beschreibung des Lifecycles von Activities, Actions und Fragments.

8.5 Fragment-Lifecycle

@startuml
title Android Fragment Lifecycle

[*] --> onAttach : Fragment attached to its host Activity
onAttach --> onCreate : Fragment is being created
onCreate --> onCreateView : Fragment creates its view
onCreateView --> onActivityCreated : Activity's onCreate() completed
onActivityCreated --> onStart : Fragment is visible and about to be started
onStart --> onResume : Fragment is visible and about to be resumed
onResume --> Running : Fragment is running

Running --> onPause : Fragment is about to be paused
onPause --> onStop : Fragment is about to be stopped
onStop --> onDestroyView : Fragment's view is about to be destroyed
onDestroyView --> onDestroy : Fragment itself is about to be destroyed
onDestroy --> onDetach : Fragment is about to be detached from its host Activity
onDetach --> [*] : Fragment is no longer attached to its host Activity

onStop --> onStart : Fragment is about to be restarted
onPause --> onResume : Fragment is about to be resumed

@enduml

Der Fragment-Lifecycle ähnelt dem Activity-Lifecycle, hat aber einige zusätzliche Zustände:

  1. onAttach(): Diese Methode wird aufgerufen, wenn das Fragment an die Activity angehängt wird.

  2. onCreate(): Diese Methode wird aufgerufen, wenn das Fragment zum ersten Mal erstellt wird.

  3. onCreateView(): Diese Methode wird aufgerufen, um das Layout des Fragments zu erstellen.

  4. onActivityCreated(): Diese Methode wird aufgerufen, nachdem die onCreate() Methode der Activity aufgerufen wurde.

  5. onStart(): Diese Methode wird aufgerufen, wenn das Fragment sichtbar wird.

  6. onResume(): Diese Methode wird aufgerufen, wenn das Fragment im Vordergrund ist und der Benutzer mit ihm interagieren kann.

  7. onPause(): Diese Methode wird aufgerufen, wenn das Fragment pausiert wird.

  8. onStop(): Diese Methode wird aufgerufen, wenn das Fragment gestoppt wird.

  9. onDestroyView(): Diese Methode wird aufgerufen, bevor die Ansicht des Fragments zerstört wird.

  10. onDestroy(): Diese Methode wird aufgerufen, um das Fragment zu zerstören.

  11. onDetach(): Diese Methode wird aufgerufen, wenn das Fragment von der Activity getrennt wird.

8.6 Action-Lifecycle

Die “Actions” in Android sind nicht mit eigenen Lifecycle-Methoden verbunden, sondern sind eng mit dem Intent-System verbunden. Eine “Action” ist eine Beschreibung dessen, was eine Intent-Aktion tun soll. Sie ist in der Regel durch eine Konstante wie ACTION_VIEW, ACTION_EDIT usw. definiert. Diese “Actions” steuern den Übergang zwischen den Zuständen in Activities oder Fragments und bestimmen, wie Ihre App auf verschiedene System- oder Benutzeraktionen reagiert.

Es ist wichtig, dass Entwickler diese Lifecycles verstehen und entsprechend darauf reagieren, um effiziente Apps zu erstellen und Ressourcenlecks zu vermeiden. Jede Methode gibt Ihnen

die Möglichkeit, spezifische Aktionen durchzuführen, wenn sich der Zustand Ihrer App ändert. Sie können beispielsweise Ressourcen im onPause() oder onStop() Zustand freigeben und sie dann in onResume() oder onStart() wiederherstellen.