Android: Activity.onDestroy () no es llamado cuando Dalvik elimina esta actividad
Estoy confundido acerca de Activity.onDestroy()
. Necesito liberar algunos recursos cuando se destruye mi actividad, pero parece que onDestroy () se llama justo cuando presiono la tecla "Back", pero no cuando Dalvik mata a mi actividad. Lo probé simplemente agregando log:
Log.v("my_tag", "onDestroy() called");
- Acivity se está destruyendo mientras se presiona el botón de inicio.
- Android Fragment onCreateView después de onDestroy no se vuelve a llamar
- Ciclo de vida de la actividad de Android: ¿para qué sirven todos estos métodos?
- Cómo probar automáticamente onResume el comportamiento llamando onDestroy usando Robotium?
- Cómo distinguir si onDestroy será llamado después de onPause
Y lo mismo en el método onCreate () también:
Log.v("my_tag", "onCreate() called");
Entonces comienzo mi actividad, y veo en los registros: onCreate() called
. Presiono la tecla "Atrás" y luego vuelvo a iniciar Actividad, luego veo:
onDestroy() called onCreate() called
Luego presiono la tecla "Inicio" y vuelvo a mi Actividad, los registros no cambian. Muy bien aquí.
Entonces presiono la llave del "hogar" otra vez y comienzo algunas aplicaciones realmente "pesadas". En logs no hay nada acerca de onDestroy (), pero cuando vuelvo a iniciar mi actividad, veo en los registros: onCreate() called
! Así que onDestroy () no fue llamado, pero mi actividad fue asesinada. ¿Qué pasa?
- Estado de ahorro de Android en el cambio de orientación
- ¿Es seguro hacer toda la limpieza en onDestroy?
- Android: Will finish () SIEMPRE llama a onDestroy ()?
- Android ¿hay alguna llamada de vista cuando se destruye?
- Alternativa garantizada a onDestroy ()?
- Cómo desvincular correctamente los servicios
- Ver - buscando un evento como en (Ver) Destruido
- ¿Qué está haciendo exactamente el método Activity.finish ()?
De la documentación onDestroy () :
[..] Hay situaciones en las que el sistema simplemente matará el proceso de alojamiento de la actividad sin llamar a este método (o cualquier otro) en él, por lo que no debe utilizarse para hacer las cosas que están destinadas a permanecer alrededor después de que el proceso desaparezca.
En Android, no obtendrá una llamada onDestroy()
garantizada.
Si desea liberar algunos recursos, debe hacerlo en onPause()
.
- ¿Por qué debería reciclar un TypedArray?
- Creación de controles compuestos con atributos XML personalizados