在official docs中,您阅读:
public SQLiteDatabase getWritableDatabase()
...
成功打开后,数据库将被缓存,因此您可以在每次需要写入数据库时调用此方法。 (确保在不再需要数据库时调用close()。)
对于SQLiteOpenHelper,我为唯一的实例实现了单例模式,但SQLiteDatabase又如何呢? 缓存效果如何?
Android SQLite DB When to Close 我查看了这篇文章,但没有讨论缓存。
答案 0 :(得分:0)
分别在每次操作之前和之后打开和关闭数据库 在不需要时,切勿将其打开。
你的口头禅应该是:打开它,使用它,关闭它 对每个数据库操作重复一次。
游标也一样。
答案 1 :(得分:0)
每次查询后我总是关闭我的SQLiteDatabase。例如,以下是我实现插入方法的方法:
public void insert(ContentValues valuesMap){
SQLiteDatabase db = getWriteableDatabase();
try{
db.insert("ContactsTable", null, valuesMap);
}catch(Exception e){
// do someting...
}finally{
db.close()
}
}