Sobes.tech
Junior

Was ist der Unterschied zwischen dem Lebenszyklus eines Fragments und dem einer Activity?

sobes.tech KI

Antwort von AI

Der Lebenszyklus eines Fragments ist eng mit dem Lebenszyklus der übergeordneten Activity verbunden. Ein Fragment kann nicht ohne eine Activity existieren.

Wichtige Unterschiede:

  • onCreate(): Das Fragment hat eine zusätzliche Methode onAttach() vor onCreate(), in der die Verbindung zur Activity hergestellt wird (Erhalt des Kontextes der Activity), und onCreateView(), in der die View-Hierarchie des Fragments erstellt wird.
  • onDestroy(): Das Fragment hat eine zusätzliche Methode onDestroyView() vor onDestroy(), in der die View-Hierarchie bereinigt wird, und onDetach() nach onDestroy(), in der die Trennung von der Activity erfolgt.
  • Zustand: Das Fragment kann zum Back-Stack der Activity hinzugefügt werden, was die Wiederherstellung seines Zustands beim Zurückkehren ermöglicht. Die Activity wird beim Beenden vollständig zerstört.
  • Verschachtelung: Activities arbeiten auf Bildschirm-Ebene, während Fragmente verschachtelt innerhalb anderer Fragmente und in einer Activity sein können.

Vergleichstabelle der wichtigsten Lebenszyklus-Methoden:

Activity-Methode Fragment-Methode(n) Beschreibung
onCreate() onAttach(), onCreate(), onCreateView() Instanz erstellen, verbinden, View erstellen
onStart() onStart() Wird sichtbar
onResume() onResume() Beginnt mit der Interaktion mit dem Benutzer
onPause() onPause() Geht in den Hintergrund oder wird teilweise ausgeblendet
onStop() onStop() Wird unsichtbar
onDestroy() onDestroyView(), onDestroy(), onDetach() View, Instanz zerstören, Trennung

Der Lebenszyklus eines Fragments ist granularer, was eine flexiblere Verwaltung des Zustands und Verhaltens der UI-Komponenten innerhalb einer einzelnen Activity ermöglicht. Zum Beispiel wird onCreateView() jedes Mal aufgerufen, wenn die View des Fragments erstellt wird, auch wenn das Fragment bereits erstellt wurde (z.B. bei einer Konfigurationsänderung). onCreate() wird nur einmal im Lebenszyklus der Fragment-Instanz aufgerufen.