Android cierre y apertura de base de datos SQLite en el nivel de aplicación

Tengo una base de datos de SQLite declarada y almacenada en el nivel de la aplicación. Puedo manejar los cambios de configuración como la rotación del dispositivo, por lo que el cierre de la base de datos que se establece dentro de la onDestroy de la MainActivity, pero dentro de un if (this.isFinishing ()).

El problema que tengo es que, si justo después de cerrar la aplicación intento iniciarla de nuevo, se bloquea diciéndome que intentó abrir una base de datos ya cerrada. La próxima vez que se iniciará correctamente. Supongo que esto es porque Android realmente nunca cerró la aplicación porque no había necesidad, y todavía está en segundo plano.

No pude encontrar una manera de detectar onFinish / onDestroy …. en el nivel de aplicación, para cerrar la base de datos allí. La única solución que puedo hacer es no cerrar la base de datos. Pero esto puede darme problemas quizás al intentar abrirlo de nuevo en caso de que Android realmente cerró mi aplicación, ¿no?

¿Hay una manera de cerrar la aplicación? (Creo que no hay). ¿Hay una manera de detectar el cierre de la aplicación para cerrar la base de datos allí? ¿Tendré problemas al intentar abrir una base de datos no cerrada si la aplicación ha sido cerrada por Android? ¿O Android cierra la base de datos vinculada a una aplicación que va a cerrar?

One Solution collect form web for “Android cierre y apertura de base de datos SQLite en el nivel de aplicación”

La única solución que puedo hacer es no cerrar la base de datos

Correcto, y esta es la respuesta correcta.

Pero esto puede darme problemas quizás al intentar abrirlo de nuevo en caso de que Android realmente cerró mi aplicación, ¿no?

No.

¿Hay una manera de detectar el cierre de la aplicación para cerrar la base de datos allí?

No.

¿Tendré problemas al intentar abrir una base de datos no cerrada si la aplicación ha sido cerrada por Android?

No.

¿O Android cierra la base de datos vinculada a una aplicación que va a cerrar?

No.

Cerrar una base de datos no hace realmente mucho. SQLite es transaccional; Todas las operaciones de escritura de la base de datos se escriben en el disco cuando se ejecutan esas transacciones.

  • Conexión de SQLite se filtró aunque todo se cerró
  • No hay tal tabla android_metadata, ¿cuál es el problema?
  • Eliminación automática de objetos anidados en ORMLite
  • IllegalStateException: Tablas no válidas al intentar consultar la base de datos con ContentProvider
  • Android android.database.CursorIndexOutOfBoundsException: Índice x solicitado, con un tamaño de x
  • Cómo hacer la sincronización bidireccional entre Android SQLite y SQL Server
  • ¿Qué es la tabla android_metadata?
  • SQlite - Android - Sintaxis de clave extranjera
  • Forma preferida de actualizar sqlite db en android
  • Android: utilice la base de datos SQLite en la tarjeta SD (no utilizando el almacén de datos Android interno)
  • AutoCompleteTextView con CursorLoader y SimpleCursorAdapter
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.