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()voronCreate(), in der die Verbindung zur Activity hergestellt wird (Erhalt des Kontextes der Activity), undonCreateView(), in der die View-Hierarchie des Fragments erstellt wird. - onDestroy(): Das Fragment hat eine zusätzliche Methode
onDestroyView()voronDestroy(), in der die View-Hierarchie bereinigt wird, undonDetach()nachonDestroy(), 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.