java - 使用 getWritableDatabase() 时需要调用 close() 吗?

标签 java android sqliteopenhelper

如果我有这样的代码

private final SQLiteDatabase database;
private final SQLiteOpenHelper helper;
// ...
this.database = helper.getWritableDatabase();
// ...

我需要显式调用 close() 吗?

我对这个答案感到困惑:https://stackoverflow.com/a/18595604/4932519

查看 getWritableDatabase() 的文档:

Once opened successfully, the database is cached, so you can call this method every time you need to write to the database. (Make sure to call close() when you no longer need the database.)

附言对不起我的英语。

最佳答案

close() 的一次调用应始终与对 getWritableDatabase() 的每次调用配对。

当您为每个查询调用一次 getWritableDatabase() 时,您还应该在完成查询后调用 close()

当您在 Activity 启动时调用 getWritableDatabase() 并保存引用时,您应该在 Activity 关闭时调用 close()

关于java - 使用 getWritableDatabase() 时需要调用 close() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35068292/

相关文章:

Java-mappedbytebuffer占用直接内存吗?

java - 创建 fragment 后如何更改 fragment 布局

android - Cordova /平台/android/gradlew : Command failed with exit code 1 Error output:

java - 摘要认证 java.net.http.HttpClient

java - 如何测试 private 方法,变量或者内部类

java - 异常-将异常写入包裹

android - 成功调用 .build() 后未调用 RoomDatabase.Callback() 的 onCreate()

android - SQLiteOpenHelper 版本号基于什么?

java - 如何通过 KEY 按字母顺序创建 JSON (Java)

android - 解码 H264 文件时,Mediacodec 解码器总是超时