Cómo y cuándo cerrar la base de datos sqlite en la aplicación con un montón de actividades y servicios

He leído mucho acerca de este tema, pero no se puede utilizar ninguna solución en mi aplicación. Supongamos que hay pocos servicios y muchas actividades que necesitan acceder a db. Por supuesto, sólo una actividad es activa. Pero en el peor escenario hay una actividad y dos servicios ejecutando el acceso de fondo db.

Así que cuando cierro db de onResume de la actividad – servicio de acceso db lanzaría excepción. Y lo mismo es cuando cierro db de onDestroy del servicio y hay cursor abierto en la actividad.

Tengo algún tipo de DBManager en mi objeto de aplicación como singleton. Init DBManager en Application.onCreate. Pero no hay lugar para cerrar db sin arriesgarse a que otro Servicio y actividad está accediendo a esto.

Así que ahora yo nunca cerrar DB – ¿hay alguna consecuencia de hacer eso? ¿Hay la misma solución simple (o no demasiado complicada) para cerrar DB?

Aquí están mis aplicaciones en el mercado

Versión rusa

versión inglesa

2 Solutions collect form web for “Cómo y cuándo cerrar la base de datos sqlite en la aplicación con un montón de actividades y servicios”

Hago lo mismo, uso un objeto de base de datos singleton y nunca lo cierro hasta que mi aplicación sea destruida. No he notado ningún problema hasta ahora. Una respuesta más detallada está aquí:

https://stackoverflow.com/a/4842251/448625

Debería intentar usar ContentProviders , el sistema Android ContentProviders la creación / apertura / cierre de la base de datos según sea necesario.

  • Android rawQuery - ¿Hay una manera de usar "IN" parametrizada para una colección de datos
  • Búsqueda de Android con Fragmentos
  • Android SQLite ORDER BY no funciona
  • SQLiteDatabase getWritableDatabase () no funciona
  • Android - ¿Puedes actualizar un Cursor para los resultados de SQLite?
  • ¿Cómo puedo devolver un registro basado sólo en una coincidencia parcial de ese registro?
  • Varios Table SQLite DB Adapter (s) en Android?
  • Cómo obtener una fila específica donde se actualiza el valor en android
  • Intent.ACTION_PICK devuelve el cursor vacío para algunos contactos
  • Android: SQLite usando base de datos incorrecta
  • Uso de Rest para almacenar datos en Sqlite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.