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:
Eine Activity repräsentiert eine einzelne, fokussierte Aufgabe, die der Benutzer ausführen kann.
Es ist im Wesentlichen eine einzelne Bildschirmkomponente, die mit dem Benutzer interagiert.
Eine App kann aus einer oder mehreren Activities bestehen, und es kann immer nur eine Activity zur gleichen Zeit im Vordergrund sein (d.h., aktive Interaktion mit dem Benutzer haben).
Jede Activity hat einen eigenen Lebenszyklus, der durch Zustandsänderungen (wie “gestartet”, “fortgesetzt”, “angehalten”, “gestoppt” oder “zerstört”) verwaltet wird.
Ein Fragment ist eine modulare, wiederverwendbare Komponente einer Activity, die seine eigene Benutzeroberfläche und seinen eigenen Lebenszyklus hat.
Im Gegensatz zu Activities, die in der Regel den vollen Bildschirm einnehmen (außer im Multi-Fenster-Modus), können Fragments in Layouts von Activities eingebettet werden und mehrere Fragments können gleichzeitig auf dem Bildschirm sichtbar sein.
Fragments sind eng mit der Activity, in die sie eingebettet sind, verknüpft und können dazu beitragen, mehr dynamische und flexible Benutzeroberflächen zu erstellen, besonders auf großen Bildschirmen oder in Situationen, in denen Sie den Inhalt basierend auf dem Benutzer- oder App-Zustand ändern möchten.
Ähnlich wie Activities haben auch Fragments einen Lebenszyklus, der aber von dem der sie enthaltenden Activity abhängt.
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.
onCreate(): Diese Methode wird aufgerufen, wenn die Activity zum ersten Mal erstellt wird. Hier sollte die grundlegende Anwendungseinrichtung durchgeführt werden, wie das Erstellen von Views und das Binden von Daten an Listen.
onStart(): Diese Methode wird aufgerufen, wenn die Activity sichtbar wird, aber noch nicht für den Benutzer interaktiv ist. Hier sollte die App Änderungen vornehmen, die die Benutzeroberfläche betreffen.
onResume(): Diese Methode wird aufgerufen, wenn die Activity in den Vordergrund tritt und für den Benutzer interaktiv wird. Hier sollte die App beginnen, interaktive Aktionen durchzuführen, wie das Starten einer Animation oder das Abrufen von aktualisierten Daten.
onPause(): Diese Methode wird aufgerufen, wenn das System eine vorübergehende Unterbrechung der Activity beginnt, wie zum Beispiel einen eingehenden Anruf. Hier sollte die App Änderungen vornehmen, die das Speichern von nicht gesicherten Daten oder das Anhalten von Animationen betreffen.
onStop(): Diese Methode wird aufgerufen, wenn die Activity nicht mehr sichtbar ist. Hier sollte die App Änderungen vornehmen, die das Freigeben von Ressourcen oder das Speichern von Informationen betreffen, die beim nächsten Start der Activity benötigt werden.
onDestroy(): Diese Methode wird aufgerufen, bevor die Activity zerstört wird. Dies kann entweder passieren, weil die Activity explizit beendet wurde oder weil das System sie zur Speicherfreigabe zerstört hat.
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
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(R.layout.activity_main)
setContentView}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
// Inflate the menu; this adds items
// to the action bar if it is present.
.inflate(R.menu.main, menu)
menuInflaterreturn 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.
Der Fragment-Lifecycle ähnelt dem Activity-Lifecycle, hat aber einige zusätzliche Zustände:
onAttach()
: Diese Methode wird aufgerufen, wenn das
Fragment an die Activity angehängt wird.
onCreate()
: Diese Methode wird aufgerufen, wenn das
Fragment zum ersten Mal erstellt wird.
onCreateView()
: Diese Methode wird aufgerufen, um
das Layout des Fragments zu erstellen.
onActivityCreated()
: Diese Methode wird aufgerufen,
nachdem die onCreate()
Methode der Activity aufgerufen
wurde.
onStart()
: Diese Methode wird aufgerufen, wenn das
Fragment sichtbar wird.
onResume()
: Diese Methode wird aufgerufen, wenn das
Fragment im Vordergrund ist und der Benutzer mit ihm interagieren
kann.
onPause()
: Diese Methode wird aufgerufen, wenn das
Fragment pausiert wird.
onStop()
: Diese Methode wird aufgerufen, wenn das
Fragment gestoppt wird.
onDestroyView()
: Diese Methode wird aufgerufen,
bevor die Ansicht des Fragments zerstört wird.
onDestroy()
: Diese Methode wird aufgerufen, um das
Fragment zu zerstören.
onDetach()
: Diese Methode wird aufgerufen, wenn das
Fragment von der Activity getrennt wird.
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.