Pregunta

Tengo una base de datos de SQLite declarada y almacenada a nivel de aplicación. Mango los cambios de configuración como la rotación del dispositivo, por lo que el cierre de la base de datos lo configuré dentro de la ONDESTROY de la principalactividad, pero dentro de un IF (este. Presidente ()).

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

No pude encontrar una manera de detectar OnFinish / OnDestroy ... a 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 tal vez cuando intentas abrirlo de nuevo en caso de que Android realmente cerró mi solicitud, ¿no?

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

¿Fue útil?

Solució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 tal vez cuando intentas abrirlo de nuevo en caso de que Android realmente cerró mi solicitud, ¿no?

no.

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

no.

¿Tendré problemas para intentar abrir una base de datos no cerrada si la aplicación fue 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 mucho todo eso.SQLite es transaccional;Todas las operaciones de escritura de su base de datos se escriben en el disco cuando ejecute esas transacciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top