studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android ondestroy

android - programacion - Actividad OnDestroy nunca se llama?



manual de programacion android pdf (3)

En la mayoría de los teléfonos cuando se presiona el botón Atrás se llaman dos veces en los métodos Stop () y onDestroy (), pero si no es su caso, puede crear un botón para invocar el final (); método.

Estoy usando el siguiente código en mi ListActivity

// a separate class in project public class MyActivity extends ListActivity { // some common functions here.. } public class SelectLocation extends MyListActivity { public void onCreate(Bundle savedInstance) { // here..... } @Override protected void onDestroy() { super.onDestroy(); if (adap != null) adap = null; if (list != null) list = null; System.gc(); } }

¿alguien me guía por onDestroy método onDestroy no se llama en mi código?


No hay garantía de que se onDestroy su método onDestroy .

El código que está utilizando en su método onDestroy no es necesario en absoluto. Si se llama destroy, su actividad se eliminará de la pila y, de todos modos, es gratuita para la recolección de basura con todos los recursos que la actividad hace referencia únicamente a ella. También se supone que System.gc () es un estilo incorrecto. En Android, el sistema casi siempre sabe cuándo es el mejor momento para hacer una recolección de basura. La mayoría de las veces que una actividad termina la recolección de basura se activa automáticamente. Solo elimine todo el método onDestroy. Si tiene problemas con la memoria general de su aplicación, el problema está en otra parte.


onDestroy() solo cuando el sistema tiene pocos recursos (memoria, tiempo de CPU, etc.) y toma la decisión de matar su actividad / aplicación o cuando alguien llama a finish() en su actividad.

Entonces, para probar tu código () puedes hacer un botón de prueba que llamará a finish() en tu actividad.

Lea más here .

Además, creo que no necesita llamar todo esto en onDestroy() hasta que Adap no sea un recurso crítico. E incluso en ese caso, el sistema androide tiene mecanismos para deshacerse de ellos adecuadamente.