Quiero saber cuándo se cierra la aplicación, porque necesito borrar una base de datos cuando el usuario cierra la aplicación, justo en el momento en que el usuario cierra la aplicación es el momento adecuado para borrar el SQLite Base de datos, ¿cómo puedo detectar esto?detectar cuando la aplicación está cerrada
Respuesta
Supongamos que su actividad principal no es finish()
, borrar su base de datos dentro del método onDestroy()
de esa actividad puede ser lo más cercano a lo que desea lograr. Como se ha señalado en los comentarios, consulte http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle.
onDestroy() no parece funcionar a veces, android simplemente se salta la ejecución del método onDestry(). – San
Se recomienda utilizar 'onPause()', ya que la ejecución 'onDestroy()' no es 100% confiable (depende de los recursos del sistema) –
Esta es una idea de diseño defectuosa, que refleja un malentendido del sistema: cuando el proceso en general muere, está muerto, lo que significa que su código ya no se está ejecutando.
Usted puede hacer algo de seguimiento y tener la última onDestory() 'd actividad de hacer la limpieza como una cortesía, pero no suponga que va a suceder en realidad siempre (el método no es siempre llama). Si tener una copia obsoleta es un problema, límpiala en la próxima ejecución.
Dicho esto, puede intentar usar el ndk para proporcionar un controlador para las señales de terminación del proceso, pero aún así no contaría con que funcione en todos los casos. El potencial limitado para obtener cualquier funcionalidad de sonido de esto probablemente no justifique el esfuerzo a menos que ya esté familiarizado con los conceptos involucrados.
Y no se equivoque ni un minuto al limpiar un mecanismo de seguridad, ya que el archivo está allí mientras se ejecuta su aplicación, y se mantendría si su aplicación terminara de manera inesperada.
"Si tener una copia obsoleta es un problema, límpiela en la siguiente ejecución." Gracias, buena sugerencia – Nactus
- 1. funciones Eliminar Elimina incluso cuando la aplicación está cerrada llamando
- 2. Cómo deshabilitar Android LocationListener cuando la aplicación está cerrada
- 3. iPhone: cómo configurar la insignia de la aplicación, cuando la aplicación está cerrada/en segundo plano?
- 4. Liberar un NSWindowController cuando la ventana está cerrada
- 5. detectando cuando la ventana emergente "Descarga de archivo" está cerrada
- 6. "¡La sesión está cerrada!" - NHibernate
- 7. ¿Se cierra la aplicación Cocoa cuando la ventana principal está cerrada?
- 8. ¿Ciclo de vida de la base de datos Sqlite? ¿Se borra cuando la aplicación está cerrada?
- 9. Android: Guardar un estado de la instancia cuando la aplicación está cerrada
- 10. Actualizar ventana padre cuando la ventana emergente está cerrada
- 11. ¿Cómo usar Alarm Manager incluso si la aplicación está cerrada?
- 12. Ejecutar código cuando la aplicación de Android está cerrada/enviada al fondo
- 13. ¿Cómo detectar cuando la pantalla está encendida?
- 14. ¿Cómo detectar cuando finaliza la aplicación?
- 15. "Pipe está siendo cerrada" cuando se utiliza el WinRT Geolocalizador
- 16. Cómo detectar si el iphone está sincronizado cuando la aplicación no se está ejecutando
- 17. Detectar conexión de navegador cerrada en PHP
- 18. ¿Completamente cerrada la aplicación de subprocesos múltiples?
- 19. detectar cuando JavaScript está deshabilitada en ASP.NET
- 20. ¿Cómo detectar cuando mathjax está completamente cargado?
- 21. Cómo detectar cuando innerHTML está completo
- 22. La aplicación Qt permanece en la memoria incluso después de que MainWindow está cerrada
- 23. ¿Cómo cerrar todas las etapas cuando la etapa primaria está cerrada?
- 24. fancybox - pasando la variable a parent cuando la ventana de fancybox está cerrada
- 25. Usuario de cierre de sesión cuando la página de pestañas del navegador está cerrada, ASP.NET MVC
- 26. ¿Cómo detectar cuando un lienzo está listo para la manipulación?
- 27. ¿Cómo comprobar si la conexión de TcpClient está cerrada?
- 28. ¿Cómo cerrar una aplicación JavaFX en la ventana cerrada?
- 29. Detectar cuando un volumen está montado en OS X
- 30. Android - Hacer WebSite DomStorage persistente después de la aplicación cerrada
** Lea los documentos: ** http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle –
Sí, lo sé, pero la pregunta es, necesito saber cuándo la aplicación total está cerrada, no cuando se cierra una actividad. – JLouis
Lo que quieres es imposible. Su proceso puede ser cancelado en cualquier momento por el usuario o el sistema operativo, y no se le notificará sobre esto. – CommonsWare