Sobes.tech
Junior

Wat is het verschil tussen de levenscyclus van een fragment en die van een Activity?

sobes.tech AI

Antwoord van AI

De levenscyclus van een fragment is nauw verbonden met die van de ouderlijke Activity. Een fragment kan niet bestaan zonder een Activity.

Belangrijke verschillen:

  • onCreate(): Het fragment heeft een extra methode onAttach() vóór onCreate(), waarin de koppeling met de Activity plaatsvindt (het verkrijgen van de context van de Activity), en onCreateView(), waarin de View-hiërarchie van het fragment wordt gemaakt.
  • onDestroy(): Het fragment heeft een extra methode onDestroyView() vóór onDestroy(), waarin de View-hiërarchie wordt opgeruimd, en onDetach() na onDestroy(), waarin de ontkoppeling van de Activity plaatsvindt.
  • Toestand: Het fragment kan worden toegevoegd aan de backstack van de Activity, waardoor de toestand kan worden hersteld bij terugkeer. De Activity wordt volledig vernietigd bij afsluiting.
  • Genest: Activities werken op schermniveau, terwijl fragmenten in elkaar kunnen worden genest en in een Activity.

Vergelijkingstabel van de belangrijkste levenscyclusmethoden:

Activity-methode Fragment-methode(n) Beschrijving
onCreate() onAttach(), onCreate(), onCreateView() Aanmaken van instantie, koppeling, View maken
onStart() onStart() Wordt zichtbaar
onResume() onResume() Begint interactie met gebruiker
onPause() onPause() Gaat naar achtergrond of wordt gedeeltelijk verborgen
onStop() onStop() Wordt onzichtbaar
onDestroy() onDestroyView(), onDestroy(), onDetach() Vernietigen van View, instantie, ontkoppeling

De levenscyclus van een fragment is meer gedetailleerd, waardoor het beheer van de toestand en het gedrag van UI-componenten binnen één Activity flexibeler wordt. Bijvoorbeeld, onCreateView() wordt elke keer aangeroepen wanneer de View van het fragment wordt gemaakt, zelfs als het fragment al is gemaakt (bijvoorbeeld bij een configuratiewijziging). onCreate() wordt slechts één keer aangeroepen tijdens de levenscyclus van de fragment-voorbeeld.