Quiero saber cuando la aplicación está cerrada, porque necesito borrar una Base de datos cuando el usuario cierre la aplicación, justo en el momento cuando el usuario cierra la aplicación es el momento adecuado para borrar la Base de datos SQLite, ¿cómo se puede detectar esto?

Lea la documentación: developer.android.com/reference/android/app/…
Sí, lo sé, pero la pregunta es, necesito saber cuando el total de la aplicación se cierra, no cuando una actividad está cerrado.
Lo que quiero es imposible. El proceso puede ser terminado en cualquier momento por el usuario o el sistema operativo, y no se le notifica de esto.
Usted parece estar muy consciente de Android de la Pila, es una posibilidad de adjuntar una Aplicación.ActivityLifecycleCallbacks a la clase de Aplicación y escuchar onActivityDestroyed(actividad Actividad) o a cualquier terminación de la clase de la Aplicación de la misma? (preguntando)
El Application nunca está terminado. El proceso termina. El onTerminate() método nunca es llamado, ni es otra cosa.

OriginalEl autor JLouis | 2012-04-30

2 Comentarios

  1. 8

    Suponiendo que no finish() su actividad principal, la limpieza de su base de datos dentro de la onDestroy() método de que la actividad podría ser la más cercana de lo que se quiere 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 sólo omite la ejecución de la onDestry() método.
    El uso de onPause() se anima, como onDestroy() la ejecución no es 100% fiable (pends en los recursos del sistema)
    Pero eso sería borrar la DB en cada rotación del dispositivo

    OriginalEl autor jcxavier

  2. 16

    Este es errónea la idea de diseño, que refleja una falta de comprensión del sistema – cuando el proceso general de muerto, está muerto, es decir, su código no está en ejecución.

    Usted puede hacer algunas de seguimiento y la última onDestory()’d actividad de hacer la limpieza como una cortesía, pero no asuma que siempre va a suceder (el método no es siempre llama). Si tener una copia obsoleta es un problema, lo limpiamos en la siguiente ejecución.

    Que, dijo, puede intentar usar el ndk para proporcionar un controlador para la terminación del proceso de las señales, pero todavía no me fíe de trabajo en todos los casos. Las limitadas posibilidades de ganar alguna funcionalidad de sonido de este probablemente no justificar el esfuerzo a menos que usted ya está familiarizado con los conceptos involucrados.

    Y no para un minuto error de limpieza para un mecanismo de seguridad, ya que el archivo está ahí mientras se está ejecutando la aplicación, que se quedaría si la aplicación termina de una manera inesperada.

    «Si tener una copia obsoleta es un problema, lo limpiamos en la próxima carrera.» – gracias, buena sugerencia

    OriginalEl autor Chris Stratton

Dejar respuesta

Please enter your comment!
Please enter your name here