如果我有这样的代码
private final SQLiteDatabase database;
private final SQLiteOpenHelper helper;
// ...
this.database = helper.getWritableDatabase();
// ...
我是否需要明确调用close()?
我对这个答案感到困惑:https://stackoverflow.com/a/18595604/4932519
查看doc for getWritableDatabase():
成功打开后,数据库将被缓存,因此您可以调用它 每次需要写入数据库时的方法。 (确保 当您不再需要数据库时调用close()。)
P.S。抱歉我的英文。
答案 0 :(得分:2)
close()
的一次通话应始终与每次拨打getWritableDatabase()
配对。
当您为每个查询拨打getWritableDatabase()
一次时,您还应在完成查询后致电close()
。
当您在活动启动时调用getWritableDatabase()
并保存参考时,应在活动关闭时致电close()
。