Cycle de vie de l'activité Android après avoir appuyé sur le bouton Retour
-
21-12-2019 - |
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 B
La mémoire de est vidée (inactive).
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.
N'hésitez pas à visiter mon blog pour plus d'informations :http://upadhyayjiteshandroid.blogspot.in/2013/02/android-lifecycle.html
veuillez 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é.
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 leisFinishing()
méthode.
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.