Que pouvez-vous me dire sur le cycle de vie d'une Activity dans Android?
sobes.tech IA
Réponse de l'IA
Le cycle de vie de Activity est un ensemble d'états et de transitions entre eux, par lesquels chaque instance de Activity passe du moment de sa création jusqu'à sa destruction. Il est défini par un ensemble de méthodes de rappel (callback).
Les principales méthodes callback du cycle de vie :
onCreate(): Appelée lors de la première création de l'Activity. Ici, l'initialisation de l'interface utilisateur, la liaison des données et d'autres actions uniques ont lieu.onStart(): Appelée lorsque l'Activitydevient visible pour l'utilisateur, mais n'a pas encore reçu le focus.onResume(): Appelée lorsque l'Activityreçoit le focus et devient active. C'est ici que commencent généralement les animations et autres actions interactives.onPause(): Appelée lorsque l'Activityperd le focus, mais est encore visible (par exemple, une boîte de dialogue semi-transparente au-dessus). Ici, il faut arrêter les opérations gourmandes en ressources.onStop(): Appelée lorsque l'Activityn'est plus visible pour l'utilisateur. Ici, les données non sauvegardées sont enregistrées et les ressources qui ne sont plus nécessaires sont libérées.onDestroy(): Appelée avant que l'Activityne soit détruite. Ici, toutes les ressources restantes sont libérées.onRestart(): Appelée aprèsonStop()lors de la réaffichage de l'Activity. Elle est suivie deonStart().
Graphiquement, le cycle de vie peut être représenté ainsi :
Created -> Started -> Resumed -> Paused -> Stopped -> Destroyed
Il existe également des transitions :
- Created -> Started (après
onStart()) - Started -> Resumed (après
onResume()) - Resumed -> Paused (lorsqu'elle perd le focus)
- Paused -> Resumed (lorsqu'elle reprend le focus)
- Paused -> Stopped (lorsqu'elle est complètement masquée)
- Stopped -> Destroyed (lors de la fin de l'activité)
- Stopped -> Restarted -> Started (après
onRestart())
Il est important de gérer correctement l'état de l'Activity dans ces méthodes callback pour éviter les fuites de mémoire et assurer un comportement correct de l'application lors du changement de configuration ou de la commutation entre activités. Pour sauvegarder l'état, on utilise onSaveInstanceState() (avant onStop()) et la restauration se fait dans onCreate() ou onRestoreInstanceState() (après onStart()).
Exemple d'utilisation de onSaveInstanceState() :
// Sauvegarde de l'état
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("my_data", "some_value")
super.onSaveInstanceState(outState)
}
// Restauration de l'état
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
if (savedInstanceState != null) {
val myData = savedInstanceState.getString("my_data")
// Utiliser myData
}
}