Question

Je suis un 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, c'est-à-dire A ----> B.

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

Était-ce utile?

La solution

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 Précédent, 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é, et si vous appuyez sur le bouton retour, onDestroy est appelé, ce qui signifie que l'activité est évacuée.

stack

N'hésitez pas à visiter mon blog pour plus d'informations :http://upadhyayjiteshandroid.blogspot.in/2013/02/android-lifecycle.html

activity lifecycleveuillez visiter pour en savoir plus

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

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

Autres conseils

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

onPause()
onStop()
onDestroy()

L'activité est détruite.

Et il recrée une fois relancé.Ce sont les méthodes de rappel lors du nouveau lancement.

onCreate()
onStart()
onResume()

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

À partir de documents :

Si une activité est mise en pause 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 la destruction de votre activité.Cela peut se produire soit parce que l'activité est en train de se terminer (quelqu'un appelé finish() dessus, ou parce que le système est temporairement détruire cette instance de l'activité pour économiser de l'espace.Vous pouvez distinguer ces deux scénarios avec le isFinishing() méthode.

enter image description here

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 d'une récente

onRestart()
onStart()
onResume()

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

onPause()
onStop()
onDestroy()

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

Pour plus d'informations, veuillez visiter le documentation officielle pour Android et jetez un œil au chiffre 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 vidée de la mémoire.Il vous sera ensuite demandé de redémarrer l'activité en appelant la méthode startActivity() qui appellera à son tour sa méthode onCreate().

Je suggérerais de consulter le lien suivant pour le cycle de vie de l'activité

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

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

www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode

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é, elle est transférée dans la pile d'activités.Ainsi, lorsque l'activité A appelle l'activité B, l'activité B est désormais au-dessus de l'activité B et lorsque vous appuyez sur le bouton Précédent, elle apparaît également dans la pile d'activités.Donc, en théorie, l’activité B a disparu.Appuyer sur un bouton d'accueil est différent d'appuyer en arrière, cela met l'activité en pause, donc cela consomme encore un peu de la mémoire du téléphone.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top