Sobes.tech
Junior

Jaký je rozdíl mezi životním cyklem fragmentu a životním cyklem Activity?

sobes.tech AI

Odpověď od AI

Životní cyklus fragmentu je úzce spojen s životním cyklem rodičovské aktivity (Activity). Fragment nem může existovat bez Activity.

Klíčové rozdíly:

  • onCreate(): Fragment má další metodu onAttach() před onCreate(), kde dochází ke spojení s Activity (získání kontextu Activity), a onCreateView(), kde je vytvořena hierarchie View fragmentu.
  • onDestroy(): Fragment má další metodu onDestroyView() před onDestroy(), kde je vyčištěna hierarchie View, a onDetach() po onDestroy(), kde dochází odpojení od Activity.
  • Stav: Fragment může být přidán do zásobníku zpět (backstack) Activity, což umožňuje obnovit jeho stav při návratu. Activity je při ukončení zcela zničena.
  • Vnoření: Activity pracují na úrovni obrazovky, zatímco fragmenty mohou být vnořeny mezi sebou a v Activity.

Tabulka srovnání hlavních metod životního cyklu:

Metoda Activity Metoda(y) fragmentu Popis
onCreate() onAttach(), onCreate(), onCreateView() Vytvoření instance, spojení, vytvoření View
onStart() onStart() Stává se viditelným
onResume() onResume() Začíná interakce s uživatelem
onPause() onPause() Přechází do pozadí nebo je částečně skryt
onStop() onStop() Stává se neviditelným
onDestroy() onDestroyView(), onDestroy(), onDetach() Zničení View, instance, odpojení

Životní cyklus fragmentu je jemnější, což umožňuje flexibilnější správu stavu a chování UI komponent v rámci jedné Activity. Například, onCreateView() je voláno pokaždé, když je vytvářena View fragmentu, i když je již fragment vytvořen (například při změně konfigurace). onCreate() je voláno pouze jednou během životního cyklu instance fragmentu.