Sobes.tech
Junior

Mi a különbség egy fragment életciklus és egy Activity életciklusa között?

sobes.tech MI

Válasz az MI-től

Egy fragment életciklusa szorosan összefügg a szülő Activity életciklusával. Egy fragment nem létezhet Activity nélkül.

Fő különbségek:

  • onCreate(): A fragmentnak van egy további onAttach() metódusa az onCreate() előtt, ahol a kapcsolat létrejön az Activity-vel (az Activity kontextusának megszerzése), és onCreateView(), ahol a fragment View hierarchiája létrejön.
  • onDestroy(): A fragmentnak van egy további onDestroyView() metódusa az onDestroy() előtt, ahol a View hierarchia tisztításra kerül, és onDetach() az onDestroy() után, ahol a kapcsolat megszakad az Activity-vel.
  • Állapot: A fragment hozzáadható az Activity visszafordítási stackjéhez, ami lehetővé teszi az állapotának visszaállítását a visszatéréskor. Az Activity véglegesen megsemmisül a végén.
  • Beágyazás: Az Activity-k a képernyő szintjén működnek, míg a fragmentek egymásba és az Activity-be is beágyazhatók.

A fő életciklus-módszerek összehasonlító táblázata:

Activity metódus Fragment metódus(ok) Leírás
onCreate() onAttach(), onCreate(), onCreateView() Példány létrehozása, kötés, View létrehozása
onStart() onStart() Láthatóvá válik
onResume() onResume() Kezdi az interakciót a felhasználóval
onPause() onPause() Háttérbe kerül vagy részben elrejtőzik
onStop() onStop() Láthatatlanná válik
onDestroy() onDestroyView(), onDestroy(), onDetach() View, példány megsemmisítése, leválasztás

A fragment életciklusa finomabb, lehetővé téve az UI komponensek állapotának és viselkedésének rugalmasabb kezelését ugyanazon Activity-n belül. Például, az onCreateView() minden alkalommal meghívódik, amikor a fragment View-ja létrejön, még akkor is, ha maga a fragment már létrejött (pl. konfigurációváltás esetén). Az onCreate() csak egyszer hívódik meg a fragment példányának életciklusa során.