Sobes.tech
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() avant onCreate(), où il se connecte à l’Activity (obtention du contexte de l’Activity), et onCreateView(), où la hiérarchie de vues du fragment est créée.
  • onDestroy(): Le fragment possède une méthode supplémentaire onDestroyView() avant onDestroy(), où la hiérarchie de vues est nettoyée, et onDetach() après onDestroy(), 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.