tutorial studio espaƱol describe descargar create app android sqlite in-memory

studio - Uso de Android sqlite en memoria



sqlite android studio 2018 (3)


He estado leyendo, navegando, buscando mucho en esto, he cruzado el flujo de apilamiento de un lado a otro muchas veces y logré reducir mi problema tanto como pude.

Lo único que no entiendo es cómo usar completamente una base de datos SQLite en memoria.

Aquí está mi situación: tengo una base de datos SQLite encriptada que descifro durante la carga de mi aplicación (esta parte funciona con seguridad). Mi clase que interactúa con la base de datos funciona con una base de datos simple. Así que para abreviar, todo es impecable con una base de datos sencilla que se carga desde la memoria interna del teléfono, pero no estoy seguro de cómo o dónde almacenar la base de datos desencriptada en la memoria para que se interprete como una base de datos normal.

Supongo que debería poner null lugar de un nombre en super(context, null, null, 3); y use :memory: lugar de una ruta en SQLiteDatabase.openDatabase() , pero todavía no entiendo completamente. Dice que no puede encontrar una tabla android_metadata , pero estoy seguro de que la base de datos es como debería ser.

Espero que haya sido claro en esto :)


Debe tener cuidado al usar la memoria ya que sus datos se perderán una vez que se pierda la conexión de db. Asegúrese de que su instancia de db no se ha cerrado

https://www.sqlite.org/inmemorydb.html


Usted (o el marco) crea una base de datos utilizando UNO de los siguientes:

  • SQLiteDatabase.create()
  • SQLiteDatabase.openDatabase()
  • SQLiteDatabase.openOrCreateDatabase()

La primera opción es la única forma de crear una base de datos de solo memoria, las otras dos abrir o crear un archivo de base de datos.

En consecuencia, si está utilizando SQLiteOpenHelper() y pasa el name como null , el marco llama a SQLiteDatabase.create(null) , por lo que obtendrá una base de datos que solo vive en la memoria (muere cuando se llama a close() ). No hay necesidad de llamar también a uno de los otros métodos directos. En su lugar, llame a getReadableDatabase() o getWritableDatabase() de su ayudante.


SQLiteOpenHelper() creará una base de datos en memoria si el name es null . Tenga en cuenta que se creará cuando invoque getWritableDatabase() .

Entonces deberías insertar tus datos.