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ředonCreate(), kde dochází ke spojení s Activity (získání kontextu Activity), aonCreateView(), kde je vytvořena hierarchie View fragmentu. - onDestroy(): Fragment má další metodu
onDestroyView()předonDestroy(), kde je vyčištěna hierarchie View, aonDetach()poonDestroy(), 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.