Sobes.tech
Junior

Aký je rozdiel medzi životným cyklom fragmentu a životným cyklom Activity?

sobes.tech AI

Odpoveď od AI

Životný cyklus fragmentu je úzko spojený s životným cyklom rodičovskej Activity. Fragment nemôže existovať bez Activity.

Kľúčové rozdiely:

  • onCreate(): Fragment má ďalšiu metódu onAttach() pred onCreate(), kde dochádza k spojeniu s Activity (získanie kontextu Activity), a onCreateView(), kde sa vytvára hierarchia View-ov fragmentu.
  • onDestroy(): Fragment má ďalšiu metódu onDestroyView() pred onDestroy(), kde sa čistí hierarchia View-ov, a onDetach() po onDestroy(), kde dochádza odpojeniu od Activity.
  • Stav: Fragment môže byť pridaný do backstacku Activity, čo umožňuje obnovu jeho stavu pri návrate. Activity je úplne zničená na konci.
  • Vnorenie: Activity fungujú na úrovni obrazovky, zatiaľ čo fragmenty môžu byť vnútorne vložené medzi sebou a v Activity.

Porovnávacia tabuľka hlavných metód životného cyklu:

Metóda Activity Metóda(y) fragmentu Popis
onCreate() onAttach(), onCreate(), onCreateView() Vytvorenie inštancie, spojenie, vytvorenie View
onStart() onStart() Stáva sa viditeľným
onResume() onResume() Začína interakciu s používateľom
onPause() onPause() Prechádza do pozadia alebo je čiastočne skrytý
onStop() onStop() Stáva sa neviditeľným
onDestroy() onDestroyView(), onDestroy(), onDetach() Zničenie View, inštancie, odpojenie

Životný cyklus fragmentu je detailnejší, čo umožňuje flexibilnejšie riadenie stavu a správania UI komponentov v rámci jednej Activity. Napríklad, onCreateView() je volané vždy, keď sa vytvára View fragmentu, aj keď je už fragment vytvorený (napríklad pri zmene konfigurácie). onCreate() je volané iba raz počas životného cyklu inštancie fragmentu.