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.

5 Solutions collect form web for “GetWritableDatabase () VS getReadableDatabase ()”

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.

  • Permiso de negación: esto requiere android.permission.INTERACT_ACROSS_USERS_FULL
  • Android piensa que no estoy cerrando mi base de datos! ¿Por qué?
  • nativescript-sqlite y módulo angular2 no se encuentra excepción
  • Consulta de selección en sqlite android
  • ¿Qué hace la clase SQLiteOpenHelper con el parámetro de contexto?
  • Administración de conexiones SQLite en Android
  • Datos de exportación de Android a csv
  • Androide. ActiveJDBC es posible?
  • Obtener el ID del elemento ListView seleccionado (datos rellenos con DB de SQLite)
  • Estrategia para actualizar la aplicación de Android (con base de datos)
  • Insertar valores en la base de datos SQLite manualmente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.