web-dev-qa-db-fra.com

Cycle de vie de Android Activité après avoir appuyé sur le bouton Retour

Je suis peu confus entre le cycle de vie de deux activités.

Supposons que j'ai l'activité A et l'activité B.

B est appelé From A i.e A ----> B.

Maintenant, B est actuellement à l'écran et j'ai appuyé sur le bouton de retour. Ici, je veux savoir: - y a-t-il encore de la mémoire disponible pour la mémoire de B (active) ou B est vidée (inactive).

29
AJ.

Supposons qu'il existe une activité A, à partir de laquelle vous lancez l'activité B. Si, pendant l'activité B, vous appuyez sur le bouton de retour, vous supprimez l'activité B de la pile et B ne sera plus dans la pile d'activités.

Chaque fois que vous poussez une activité vers la pile, onCreate est appelée et si vous appuyez sur le bouton de retour, onDestroy est appelée, ce qui signifie que l'activité est supprimée.

stack

Veuillez visiter mon blog pour plus d'informations: http://upadhyayjiteshandroid.blogspot.in/2013/02/Android-lifecycle.html

activity lifecycle s'il vous plaît visitez pour plus

http://developer.Android.com/guide/components/tasks-and-back-stack.html

http://developer.Android.com/training/basics/activity-lifecycle/starting.html

57
Jitesh Upadhyay

Les méthodes de rappel d'activité suivantes sont appelées, après avoir appuyé sur le bouton Retour.

onPause()
onStop()
onDestroy()

L'activité est détruite.

Et il se recrée lorsqu'il est relancé. Ce sont les méthodes de rappel lors de son nouveau lancement.

onCreate()
onStart()
onResume()
16
Annada

La méthode onDestroy est appelée après une nouvelle pression. Ensuite, l'activité sera extraite de la pile arrière d'activité.

De la documentation:

Si une activité est suspendue ou arrêtée, le système peut supprimer l'activité de la mémoire soit en lui demandant de terminer, soit en tuant simplement son processus. Lorsqu'il est à nouveau affiché à l'utilisateur, il doit être complètement redémarré et restauré à son état précédent.

onDestroy()à partir de documents :

Le dernier appel que vous recevez avant que votre activité ne soit détruite. Cela peut se produire soit parce que l'activité se termine (quelqu'un appelé finish() dessus, soit parce que le système détruit temporairement cette instance de l'activité pour économiser de l'espace . Vous pouvez distinguer ces deux scénarios avec la méthode isFinishing().

enter image description here

7
SMR

Je sais que la réponse a été acceptée, mais si cela aide quelqu'un, je la mets.

Lorsque l'application s'ouvre pour la première fois, en cliquant sur l'icône

onCreate()
onStart()
onResume()

Lorsque le bouton d'accueil est enfoncé

onPause()
onStop()

lorsque l'application est à nouveau ouverte en cliquant sur l'icône de l'application ou lancée à partir de la récente

onRestart()
onStart()
onResume()

lorsque l'application est ouverte et que le bouton retour est enfoncé

onPause()
onStop()
onDestroy()
4
DAS

L'activité B sera détruite et ne restera plus en mémoire.

Pour plus d'informations, visitez le documentation officielle pour Android et jetez un œil à la figure du cycle de vie de l'activité.

Une fois que vous appuyez sur la touche Retour, la méthode onDestroy () de l'activité sera appelée et l'activité sera supprimée de la mémoire. Vous devrez ensuite redémarrer l'activité en appelant la méthode startActivity () qui à son tour appellera sa méthode onCreate ().

2
Rakesh

Je suggère de faire référence au lien suivant pour le cycle de vie de l'activité

http://stackoverflow.com/a/8516056/3110609

et le lien suivant pour le mode de lancement de l'activité.

www.intridea.com/blog/2011/6/16/Android-understanding-activity-launchmode
0
Harshal Benake

Après avoir appuyé sur le bouton de retour, l'activité B sera détruite. Vous voyez, Android Gère les activités comme un Stack (une explication d'une pile) . Chaque fois que vous démarrez une activité, il pousse dans la pile d'activités. Donc, lorsque l'activité A appelle l'activité B, l'activité B est maintenant au-dessus de l'activité B, et lorsque vous appuyez sur le bouton de retour, il fait également un pop dans la pile d'activités. Donc, dans le concept, l'activité B a disparu. Appuyer sur un bouton d'accueil est différent de presser , il interrompt l'activité, il consomme donc encore un peu de mémoire du téléphone.

Ici est une bonne explication de la façon dont Android Gère les activités.

0
steven0529