我需要关闭Android Room数据库吗?

3
我刚开始了解Android Room数据库。
在使用Realm数据库时,我需要关注Realm DB实例是否已打开或关闭。因此,我通过在我的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实例。


3
通常每个人都会创建数据库的单例实例,我猜(我不是超级专家)它不值得一直打开和关闭它。 有趣的问题。 - Dak28
1
我已经查看了Android Profiler,内存使用量在进行几次操作后在120 MB到150 MB之间波动,即使我没有关闭数据库,也没有出现任何内存泄漏的情况。 - Kaushik Burkule
你试过关闭并重新打开它吗? - Dak28
@Dak28 是的,当我想要检查数据库大小时,我会先关闭它然后再打开。除了这种情况,我没有关闭 Room DB。我只是想知道为什么相比于 Realm DB,我不需要关闭 Room DB。 - Nasang
1个回答

0

不会,根据https://dev59.com/7mw15IYBdhLWcg3wcbWy#7739454的说法,当应用程序关闭时,系统将处理数据库连接的关闭。不会发生泄漏,并且保持连接打开并重复使用比保持打开和关闭连接更有效率。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接