Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android concurrencia sqlite sin excepciones

Sqlite en android le permite acceder a la base de datos desde múltiples procs para lecturas, pero si está escribiendo desde un proceso, lee y escribe desde otros procs lanzará una excepción porque la primera escritura tiene un bloqueo en el db.

Por "procs" me refiero a otros hilos en la misma aplicación.

  • Google-services.json para diferentes productFlavors
  • ¿Cómo reproducir audio a través del altavoz incluso cuando el auricular está conectado?
  • ¿Diferencias de Android entre archivos .apk firmados y no firmados?
  • 'Open Declaration' en Eclipse navega a los archivos de clase en lugar de a los archivos de origen para las bibliotecas de Android
  • En Android, ¿cuál es la diferencia entre los procesos en ejecución y los procesos de fondo en caché?
  • Cómo grabar la pantalla de Android con Android Studio?
  • ¿Hay una forma estándar de tener los otros hilos simplemente esperar hasta que la base de datos esté disponible de nuevo, posiblemente con un tiempo de espera especificado, en lugar de lanzar una excepción?

    Anticipando el "¿por qué lo está haciendo de esa manera?" Respuestas, es sólo la forma en que lo estamos haciendo, y eso es todo. Tampoco vamos a usar un proveedor de contenido. Sólo quiero una manera de sincronizar el acceso db.

    Suponiendo que no hay una forma estándar de hacerlo, probablemente terminaremos escribiendo un wrapper alrededor de las llamadas db para hacer alguna sincronización de subprocesos.

  • ¿Qué sucede exactamente cuando instalo una aplicación Android?
  • Android Studio 2.3 gradle error
  • Cómo ejecutar JavaFX en Android
  • ¿Cómo controlar el volumen de los medios?
  • Instalación de Android, apk INSTALL_FAILED_POLICY_REJECTED_PERMISSION
  • ¿Cualesquiera buenas herramientas de ORM para el desarrollo de Android?
  • 2 Solutions collect form web for “Android concurrencia sqlite sin excepciones”

    Mientras esté utilizando el mismo objeto SQLiteDatabase , la sincronización se realizará para usted.

    Así que si accede al objeto a través de un singleton, no debe haber ningún problema. Aunque es posible que desee añadir alguna lógica adicional si desea implementar un tiempo de espera, por ejemplo, esperar / notificar o algo similar.

    O puede utilizar otra base de datos que lo apoye, como H2 . Sé que puede sonar como una idea extraña. Pero de acuerdo con mi prueba inicial funciona bien (en el emulador, así como en el dispositivo), y en realidad no es más lento. Excepto para abrir y cerrar una base de datos, que es actualmente muy lenta, alrededor de 1 segundo, pero que tiene otras razones, y esperemos que se arreglen en la próxima versión.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.