在很多地方,建议在Activity
的方法中调用Realm.getDefaultInstance()
onCreate
并在 Realm 实例上调用 close
onDestroy
(或在表示器的相应方法中(。
但是,对我来说,使用 Java 的 try-with-resources 构造会更干净:
try (final Realm realm = Realm.getDefaultInstance()) {
// do stuff
}
为什么更清洁?IMO 更容易管理realm
实例的狭窄范围。在生命周期的一个时刻获取实例并在另一个时刻关闭它,这让我想起了过去与C++在一起的日子,当时我们不得不担心在正确的时刻调用delete
。
问题是:以这种方式使用 Realm 是一种不好的做法吗?为什么没有教程提到它?
以这种方式使用 Realm 是一种不好的做法吗?
否,建议对后台线程执行此操作。
请参阅官方文档中的 https://realm.io/docs/java/latest/#closing-realm-instances。
对于 UI 线程,建议使用 onCreate()
/onDestroy()
,因为如果您关闭本地 Realm 实例,那么绑定到它的结果将失效。需要打开一个 Realm 数据库才能提供与 Realm 文件中结果的连接。