2012-07-12 11 views
5

Este título puede sonar un poco loco, pero esto es lo que me está confundiendo. Mi aplicación utiliza mucho las operaciones de bases de datos locales. Como se sugiere en los documentos de Android y en algunos blogs, amplié la clase SQLiteOpenHelper y definí allí todas mis operaciones de base de datos. Como algunas de mis operaciones DB se ejecutan en subprocesos, la apertura y el cierre de la base de datos provocan algunos IllegalStateExceptions. Por lo tanto, hice mi ayudante DB como Singleton y resolvió esos problemas, también se deshace de las operaciones open y close para cada acción DB. Ahora todo parece estar funcionando bien, aunque nunca cierre la base de datos.¿Qué pasaría si no cierro la base de datos en Android?

  • Mi confusión es que es necesario cerrar DB?
  • Si es así, ¿cuál es el lugar correcto para hacerlo, está en onDestroy de la actividad principal o en otro lugar?
  • Si no cierro DB, ¿cuáles son los efectos secundarios?

Respuesta

0

Puede ver IllegalStateException si intenta abrir nuevamente la misma base de datos.

Si crea una instancia de DBHelper en onCreate método de actividad principal - sería escribir para cerrar db en onDestroy. Por lo tanto, puede estar seguro de que la próxima vez en onCreate su base de datos ya no está abierta.

Si tiene referencia al DBHelper en servicio, entonces se debe abrir y cerrar en servicio, y no en actividad.

También puede utilizar Application clase para abrir db, pero de lo que se abrió cada vez que usted aplicación se inicia (por ejemplo, cuando se recibe BroadcastReceiver)

0

La razón por la que recibe excepciones es que que está intentando escribir/leer desde la misma base de datos a través de diferentes hilos.

Creo que el mejor lugar para cerrar su base de datos sería dentro del onDestroy() de su mainActivity.

0

Me enfrenté al mismo problema. Abrí la base de datos, realicé alguna operación y olvidé cerrarla. En realidad vi algunas excepciones que logcat que es "Fuga encontrada" db se abre y nunca se cierra.

Cuestiones relacionadas