Junior
Quelle est la différence entre le cycle de vie d'un fragment et celui d'une Activity?
sobes.tech IA
Réponse de l'IA
Le cycle de vie d’un fragment est étroitement lié à celui de l’Activity parente. Un fragment ne peut pas exister sans une Activity.
Principales différences :
- onCreate(): Le fragment possède une méthode supplémentaire
onAttach()avantonCreate(), où il se connecte à l’Activity (obtention du contexte de l’Activity), etonCreateView(), où la hiérarchie de vues du fragment est créée. - onDestroy(): Le fragment possède une méthode supplémentaire
onDestroyView()avantonDestroy(), où la hiérarchie de vues est nettoyée, etonDetach()aprèsonDestroy(), où la déconnexion de l’Activity a lieu. - État: Le fragment peut être ajouté à la pile arrière de l’Activity, permettant de restaurer son état lors du retour. L’Activity est complètement détruite à la fin.
- Imbrication: Les Activity fonctionnent au niveau de l’écran, tandis que les fragments peuvent être imbriqués entre eux et dans une Activity.
Tableau comparatif des méthodes principales du cycle de vie :
| Méthode de l’Activity | Méthode(s) du Fragment | Description |
|---|---|---|
onCreate() |
onAttach(), onCreate(), onCreateView() |
Création de l’instance, liaison, création de la vue |
onStart() |
onStart() |
Devient visible |
onResume() |
onResume() |
Commence à interagir avec l’utilisateur |
onPause() |
onPause() |
Passe en arrière-plan ou est partiellement masqué |
onStop() |
onStop() |
Devient invisible |
onDestroy() |
onDestroyView(), onDestroy(), onDetach() |
Destruction de la vue, de l’instance, déconnexion |
Le cycle de vie du fragment est plus granulaire, ce qui permet de gérer plus flexiblement l’état et le comportement des composants UI dans une même Activity. Par exemple, onCreateView() est appelé à chaque création de la vue du fragment, même si le fragment lui-même a déjà été créé (par exemple, lors d’un changement de configuration). onCreate() n’est appelé qu’une seule fois durant le cycle de vie de l’instance du fragment.