使用getWritableDatabase()时是否需要调用close()?

时间:2016-01-28 17:40:19

标签: java android sqliteopenhelper

如果我有这样的代码

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。抱歉我的英文。

1 个答案:

答案 0 :(得分:2)

close()的一次通话应始终与每次拨打getWritableDatabase()配对。

当您为每个查询拨打getWritableDatabase()一次时,您还应在完成查询后致电close()

当您在活动启动时调用getWritableDatabase()并保存参考时,应在活动关闭时致电close()