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.

  • Android - ¿Existe la base de datos SQLite?
  • Mueva el cursor a la fila por una de las columnas
  • ¿Por qué algunos métodos SQLite esperan argumentos como un objeto , mientras que otros necesitan una cadena ?
  • Android cadena de escape real en sqlite
  • INSERT de SQLite de SQL
  • SQLiteDatabase transacción anidada y solución alternativa
  • SQLite3 FTS4, MATCH y Android
  • Extraño SQLiteException no en todos los dispositivos
  • SQLite de Android - Cursor y ContentValues
  • ¿Cómo puedo hacer un contexto de base de datos SQLite nulo en OnDestroy () en Android?
  • Error de base de datos SQLite de SQL cuando intenta insertar en la tabla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.