108 votes

sur finish() dans android

Quelqu'un pourrait-il fournir une description de ce qui se passe quand une activité appelle sa finish()?

Ne quittez immédiatement, ou faut-il remplir la fonction à partir de laquelle il a été appelé?

124voto

CommonsWare Points 402670

Il ne quitte immédiatement ou complète la fonction à partir de laquelle il a été appelé ?

La méthode qui a appelé finish() exécute à la fin. L' finish() opération ne sera même pas commencer jusqu'à ce que vous revenir pour Android.

13voto

user284295 Points 144

ondestroy() est 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.

1voto

Darpan Points 709

Si il y a deux activités A et B. Et votre débit va de A > B; B=A appels finish().

Ensuite,

La méthode où vous avez appelé finish() de exécutera en tant que Marque est mentionnée. Et le flux des rappels seront comme suit -

  1. onPause() de activity A
  2. onRestart() > onStart() > onResume() de l'Activité B
  3. Ensuite, vient la vraie différence. Si vous n'avez pas appeler finish() de activity A; seulement onStop() de Activity A sera appelé ici. Alors que, dans ce cas, où nous l'avons appelé, finish() de Activity A; Donc, onStop() et onDestroy() tous les deux vont être appelés pour l' activity A.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X