60 votes

Pourquoi super.onDestroy() en java - Android va sur le dessus en les destructeurs?

Je suis nouveau dans le développement java! Quelqu'un peut-il me dire... selon quelle logique super.onDestroy(); dans les destructeurs va sur le dessus? par exemple:

protected void onDestroy() {        
    super.onDestroy();
    releaseMediaPlayer();
}

et pas

protected void onDestroy() {        
    releaseMediaPlayer();
    super.onDestroy();
}

comme c++, obj-c, pascal, etc ??

71voto

Cristian Points 92147

Cela dépend vraiment de ce que vous voulez faire dans votre onDestroy. C'est ce que super.onDestroy (dans l'ordre):

  • Rejeter toutes les boîtes de dialogue de l'activité de gestion.
  • Fermez tous les curseurs de l'activité a été la gestion.
  • Fermez tous les boîte de dialogue de recherche

Si la logique de vous mettre à l'intérieur d' onDestroy a quelque chose à faire avec ces trois choses que android est le cas, vous pouvez avoir à vous soucier de l'ordre. Sinon, et dans la plupart des cas, il n'a pas d'importance.

13voto

Zorfling Points 106

Dans le ThreadSample.zip sur les Rapports de Statut de Travail à la formation, il y a un commentaire dans onDestroy()

public void onDestroy() {
    ...
    // Must always call the super method at the end.
    super.onDestroy();
}

Alors peut-être que lors de l'utilisation de Récepteurs de Radiodiffusion, le super doit aller à la fin.

5voto

Falmarri Points 20281

Quelle est votre question? Vous pouvez le faire de toute façon, cela dépend si vous voulez que votre superclasse, onDestroy() appelé avant le vôtre. Habituellement, je ne pense pas que ça compte dans android.

Aussi, onDestroy() n'est pas un destructeur. Il ne fait pas de détruire l'objet. C'est juste une méthode qui est basée sur un certain état. Si votre instance est toujours vivant et très bien* après la superclasse, onDestroy() tourne et retourne.

*Le plus probable, android est libre de tuer l'activité à tout moment, mais vous pouvez supposer qu'il est toujours là.

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