Gra*_*dpa 18 sqlite android in-memory
我一直在阅读,浏览,搜索很多,我来回交叉堆栈溢出很多次,我设法尽可能地缩小我的问题.
我唯一不明白的是如何充分利用内存中的SQLite数据库.
这是我的情况 - 我有一个加密的SQLite数据库,我在加载我的应用程序时解密(这部分可以肯定).我与数据库交互的类肯定使用普通数据库.因此,为了简化,一切都是完美无缺的,从内部手机内存加载的普通数据库,但我不知道如何或在何处将解密的数据库存储在内存中,因此它将被解释为普通数据库.
我想我应该把null,而不是一个名称的super(context, null, null, 3);,用:memory:的,而不是一个路径SQLiteDatabase.openDatabase(),但我还是不完全了解.它说它找不到android_metadata表,但我确信数据库是应该的.
希望我对此很清楚:)
Die*_*ano 26
如果name是,SQLiteOpenHelper()将创建一个内存数据库null.请注意,它将在您调用时创建getWritableDatabase().
然后你应该插入你的数据.
您(或框架)创建使用数据库ONE如下:
SQLiteDatabase.create()SQLiteDatabase.openDatabase()SQLiteDatabase.openOrCreateDatabase()第一个选项是创建仅内存数据库的唯一方法,另外两个打开或创建数据库文件.
因此,如果你正在使用SQLiteOpenHelper()并且你传递nameas null,框架调用SQLiteDatabase.create(null),那么你将获得一个只存在于内存中的数据库(它在close()被调用时会死掉).也没有必要再调用其他直接方法之一.而是来电getReadableDatabase()或getWritableDatabase()来自你的帮手.
| 归档时间: |
|
| 查看次数: |
11517 次 |
| 最近记录: |