GetWritableDatabase () VS getReadableDatabase ()

Estoy creando una clase de ayudante de la base de datos y para algunos de los métodos dentro de él solamente estoy consultando la base de datos y otras que le escribo.

Mi comprensión es que ambos métodos abrirán la base de datos para arriba y dejarán el programa apenas leer o escribir en la base de datos.

Para las sentencias de consulta vale la pena usar getReadableDatabase () o hay muy poca diferencia en el rendimiento entre los dos métodos.

Gracias por tu tiempo.

Devuelven el mismo objeto a menos que el disco esté lleno o haya algún error de permiso que obligue a abrir la base de datos en modo de sólo lectura. El nombre es un poco confuso aunque 🙂

Como regla general, debe poner cualquier llamada a estos métodos fuera del subproceso de interfaz de usuario. Ambos pueden tardar mucho tiempo en volver.

Si no va a escribir la base de datos sólo use getReadableDatabase ya que contribuirá a su claridad de código y la intención.

Más información aquí .

Si nos fijamos en NotepadProvider.java en el proyecto de muestra de Google NotePad, verá que utilizan ambos – dependiendo del caso de uso.

Si usted está haciendo demasiadas operaciones en la base de datos como la consulta, la actualización con frecuencia en algún orden aleatorio, entonces realmente no tiene ningún sentido en el uso de getReadabledatabase, ya que sólo se puede utilizar para leer los valores.

Según el requisito de su aplicación, puede juzgar el uso. Si usted está leyendo solamente los valores constantemente entonces usted puede ir para getreadabledatabase.

Nota: Algunas veces cuando está intentando abrir la base de datos para escribir, usando getwritabledatabase y si el sistema encuentra una excepción como permiso de escritura o así, en ese caso el sistema puede lanzar una excepción. En tales casos, puede abrir la base de datos utilizando getreadabledatabase.

Si obtiene errores de tipo "La base de datos está bloqueada" al implementar llamadas db concurrentes (multihilo), utilice getWritableDatabase en lugar de getReadableDatabase.

Abrir una base de datos de sólo lectura debe mejorar ligeramente el rendimiento, ya que el bloqueo de gastos generales será menor.

  • Cómo crear sqlite declaración preparada en OrmLite?
  • Convertir mm-dd-aaaa a aaaa-mm-dd
  • ¿Cuál es el uso de BaseColumns en Android
  • Encriptación y bloqueo de bases de datos Android
  • ¿Cómo insertar valores dobles y flotantes en sqlite?
  • Tratar con WHERE IN (?) En la consulta de SQLite de SQL
  • Consultando el valor máximo de una columna en SQLite Para Android
  • Carga perezosa de SQLite
  • Android NullpointerException al intentar recuperar datos de SQLiteOpenHelper
  • ¿Qué es la tabla android_metadata?
  • Inspeccionar la base de datos android de sql desde Eclipse
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.