onStop vs onDestroy
J'ai essayé à la recherche d'exactement quand le onDestroy méthode est appelée pour une activité, mais j'ai lu certains de confusion et d'informations contradictoires. En général, ma question est: dans quelles circonstances est la méthode onDestroy appelle en réalité sur une activité? Plus précisément, si j'ai deux activités, l'activité et de l'activité B, si Une activité est en cours d'exécution et je crée une intention et de passer à l'activité B, est l'activité d'Un seul arrêté, ou est-il détruit?
Vérifier Android Lifecyle sur Android: stackoverflow.com/questions/8515936/...
Double Possible de Android onStop/onDestroy - quand peut-il être utilisé?
Double Possible de Android onStop/onDestroy - quand peut-il être utilisé?
OriginalL'auteur Thomas | 2015-03-30
Vous devez vous connecter pour publier un commentaire.
Comme indiqué dans l'officiel la documentation:
Le dernier appel que vous recevez avant votre activité est détruite. Cela peut se produire soit parce que l'activité est la finition (quelqu'un l'a appelé finish (), ou parce que le système est temporairement en train de détruire cette instance de l'activité pour économiser de l'espace. Vous pouvez faire la distinction entre ces deux scénarios avec la isFinishing() la méthode.
Dans votre exemple, l'Activité est arrêté et pourrait être détruite par le Système
Note par
documentation
lien ci-dessus:OnDestroy sera appelée directement à partir de n'importe quel appel à terminer() dans onCreate, sautant sur onStop. onDestroy peuvent être laissés de côté après un kill quand onStop retourne. Départ avec Nid d'abeille, une application n'est pas dans le tuables état jusqu'à sa onStop() a retourné; pré-nid d'abeille onPause était le tuables état.
OriginalL'auteur JoaoBiriba
onDestroy()
est appelé à chaque fois qu':onStop()
est appelé à chaque fois qu':Donc dans votre exemple, lorsque l'utilisateur lance l'Activité B, de l'Activité que l'on appelle le
onStop()
.MODIFIER:
Le
onDestroy()
méthode n'est pas toujours appelée, conformément à la documentation.onStop()
est toujours appelé début avec Nid d'abeille, afin de passer le code vous avez explicitement le besoin de le faire avant l'arrêt de l'activité.Espère que cela a aidé 😀
Si vous utilisez
@Override
avant la méthode, il est garanti pour exécuter le code dans la méthode, dans ce casonStop()
etonDestroy()
Non, il n'est pas. Consultez la documentation. Le système est gratuit pour simplement tuer le processus sans prendre la peine d'appeler ces méthodes. Généralement, il les appeler, mais les docs disent qu'il est libre de ne pas.
Vous étiez bien et le mal, selon developer.android.com/reference/android/app/..., seule la méthode onDestroy n'est pas toujours appelée. onPause, onStop, onResume etc. sont toujours appelés
Non, j'avais raison à propos de deux d'entre eux. C'est là, dans la documentation de onStop() que la méthode ne peut jamais être appelé.
OriginalL'auteur Elwin Streekstra