vida una todas studio metodo las eventos estados ejemplo destruir describe como ciclo activity actividades java android order destroy

una - ¿Por qué super.onDestroy() en java-Android va por encima en los destructores?



metodo oncreate android (4)

¡Soy nuevo en el desarrollo de Java! Que alguien me diga ... según qué lógica super.onDestroy(); en los destructores va en la parte superior? por ejemplo:

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

y no

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

como c ++, obj-c, pascal, etc.


¿Cuál es tu pregunta? Puedes hacerlo de cualquier manera, depende si quieres que se onDestroy() tu superclase antes que la tuya. Por lo general, no creo que importe en Android.

Además, onDestroy() no es un destructor. En realidad, no destruye el objeto. Es solo un método que se llama basado en un cierto estado. Por lo tanto, su instancia todavía está activa y muy bien * después de que la superclase onDestroy() ejecute y regrese.

* Lo más probable es que Android sea libre de matar la actividad en cualquier momento, pero puedes asumir que todavía está allí.


Dado que nos estamos extendiendo desde las clases base de Android, siempre es un buen enfoque dejar que la clase padre primero se cree e inicialice durante la creación y deje que el niño inicialice y libere el recurso primero durante el apagado / detención de los componentes. Este es el enfoque recomendado a seguir. sin embargo, depende completamente de los casos de uso y escenarios.

public void onCreate(Bundle bundle){ super.onCreate(bundle); //perform child class initializations. } public void onDestroy(){ //perform uninitialization and free resource super.onDestroy(); }


En el ThreadSample.zip en el entrenamiento de Informes de estado de trabajo , hay un comentario en onDestroy ()

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

Entonces, tal vez cuando use receptores de difusión, el súper debe ir al final.


Realmente depende de lo que quieras hacer en tu onDestroy . Esto es lo que hace super.onDestroy (en ese orden):

  • Descartar los cuadros de diálogo que estaba gestionando la actividad.
  • Cierre todos los cursores que estaba gestionando la actividad.
  • Cierre cualquier diálogo de búsqueda abierto

Si la lógica que pones en el interior de onDestroy tiene algo que ver con esas tres cosas que tiene Android, entonces debes preocuparte por el orden. De lo contrario, y en la mayoría de los casos, no importa.