Cycle de vie d'une activité sous android

 

Voici un diagramme qui explique le cycle de vie d'une activité sous android:

Image non trouvée !

http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

 

Lorsque votre application est lancée, l'activité est chargée et la méthode onCreate() est lancée. Cette méthode va vous permettre d'initialiser votre activité. Il sera aussi possible de restaurer un précédent lancement de votre application qui aurait été interrompu (bundle, par exemple lors de la rotation de l'écran). Suite à cette méthode, onStart() sera lancée.

onStart() est lancée tout de suite après le onCreate() lorsque l'activité va devenir visible à l'utilisateur. Vous allez pouvoir charger des données, ...Le système pourra ensuite lancer onResume() ou onStop().

onResume() est lancée lorsque votre application est passée en avant plan. Vous pourrez donc (re)lancer vos threads, ... Le système pourra ensuite lancer onPause()

onPause() est lancée lorsqu'une autre activité va s'afficher à l'avant plan. C'est le moment de sauver toutes les données/informations saisies par l'utilisateur pour l'activité courante. En effet, le système peut décider par la suite de mettre fin à votre activité par exemple à cause d'un manque de mémoire. Par conséquent, le système pourra soit lancer soit onResume() pour remettre votre activité en avant plan ou onStop().

Image non trouvée !Ce traitement doit rester rapide, car aucune activité ne pourra démarrer tant que celle-ci ne sera pas finie (il faut bien être certain que les sauvegardes des informations soient terminées puisque l'activité risque d'être détruite ensuite).

onStop() est lancée lorsque votre activité n'est plus visible. Votre processus va maintenant passer en sommeil. Le système pourra décider de mettre fin définitivement à votre activité si nécessaire. Si vous aviez des ressources, celles-ci seront libérées. Que ce passe-t-il ensuite ?

- Soit l'utilisateur revient dans votre activité, dans ce cas, onRestart() sera lancée afin de réveiller votre ativité.

- Soit votre activité n'a plus lieu d'être et dans ce cas, onDestroy() sera lancée.

Donc onRestart() est lancée lorsque votre activité en sommeil et redémarre. Cette méthode lancera ensuite la méthode onStart().

Enfin, onDestroy(), qui met fin à au cycle de vie de l'acitivité. Exécutée lors de l’arrêt de l’activité. Libérations des ressources et purgent des fichiers temporaires. onCreate() devra être exécutée pour obtenir à nouveau l'activité.

Image non trouvée !Lorsqu'une activité se termine, et même si l'application n'avait qu'une seule activité, l'application reste apparent comme en cours d'exécution en mémoire. Pour preuve, sous ics, à partir de l'écran d'accueil, un appui long sur la touche home permettra d'afficher la liste des applications lancées (vous pourrez alors les supprimer définitivement en glissant les applications sur la gauche pour les retirer de la liste). Pour les versions antérieures d'android, vous pouvez utiliser Task Killer

 

Image non trouvée !Il existe deux autres méthodes un peu particulière qui n'apparaissent pas dans le cycle de vie:

onSaveInstanceState() ou onRetainNonConfigurationInstance() qui sont déclenchées lorsqu'il faut mémoriser l'état d'une activité suite à une relance de celle-ci. Les causes de cette relance pouvant être un manque de mémoire alors que l'activité est en pause, un changement de la configuration comme par exemple l'écran (rotation, ouverture d'un clavier par exemple) forçant à redessiner les widgets de l'activité dans la nouvelle résolution, ...