【发布时间】: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