如何在android provider中建立、操作sqlite内存数据库。

      sqlite是支持内存数据库的,在Android中,我们可以通过provider实现内存数据库操作。内存数据库的优点,访问速度快,但在连接关闭后,数据库自动消失(在android中的表现是,provider所在进程死了,内存库就没了)。应用场景,对于一次会话产生的临时数据或者密码等安全数据,这些数据仅想在应用运行期间有效,可以考虑用内存数据库。

在继承SQLiteOpenHelper的实现中,重载open方法,建立内存数据库与表。具体代码如下:

private static final String MEMORY_DBNAME = "temp_memory_db";

    @Override
    public void onOpen(SQLiteDatabase db) {
        db.execSQL("ATTACH DATABASE ':memory:' AS " + MEMORY_DBNAME + ";");
        db.execSQL("CREATE TABLE IF NOT EXISTS " + MEMORY_DBNAME + "." + Tables.MEMORY + " ("
                + MemoryColumns._ID + " INTEGER PRIMARY KEY REFERENCES concrete(_id),"
                + MemoryColumns.CONCRETE_UID + " TEXT," + MemoryColumns.PASSWORD + " TEXT);");
    }

其他操作与实体库一致。详细操作请参考TestApk