【问题标题】:Do I need to close Android Room Database?我需要关闭 Android Room 数据库吗?
【发布时间】:2019-12-03 10:56:44
【问题描述】:

我刚刚开始了解 Android Room Database。

当我使用 Realm 数据库时,我必须关心 Realm 数据库实例是打开还是关闭。 所以我在我的 kotlin 代码中通过.use 管理它。

RealmProvider(context).getDatabase().use { database ->
                if (database == null) {
                    it.onError(Exception("DataBase Open Error !"))
                } else {
                    database.executeTransaction { realm -> realm.insert(SomeData) }
                    it.onComplete()
                }
            }

但是;在 Room DB 中,没有人在他们的代码中使用 roomDatabase.close()

所以我想知道 Room DB 何时关闭和打开,以及何时在 RAM 内存上分配和释放 db 实例。

【问题讨论】:

  • 通常每个人都会创建 db 的单例实例,我想(我不是超级专家)不值得保持关闭和打开它。有趣的问题
  • 我查看了Android Profiler,经过几次操作,内存使用量在120 MB到150 MB之间,而且我没有关闭数据库,即使那样也没有某种内存泄漏.
  • 您是否尝试关闭并重新打开它?
  • @Dak28 是的,当我想检查数据库大小时,我将其关闭然后打开。除了这种情况,我没有关闭 Room DB。我只是想知道为什么与 Realm DB 相比,我不需要关闭 Room DB。

标签: android android-room


【解决方案1】:

不会,根据https://stackoverflow.com/a/7739454/1090523,应用关闭时系统会处理关闭数据库连接。不会发生泄漏,而且保持连接打开并重用它比保持打开和关闭连接更有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    相关资源
    最近更新 更多