在许多地方都有建议在Realm.getDefaultInstance()
的{{1}}方法中调用onCreate
,并在Activity
(或相应位置)的Realm实例上调用close
主持人的方法。
然而,对我来说,使用Java的try-with-resources构造会更清晰:
onDestroy
为什么清洁? IMO可以更轻松地管理try (final Realm realm = Realm.getDefaultInstance()) {
// do stuff
}
实例的狭窄范围。在生命周期的一个时刻获取实例并在另一个实例中关闭实例,让我想起过去使用C ++的时光,当我们不得不担心在适当的时候调用realm
时。
问题是:以这种方式使用Realm是不好的做法?为什么没有教程提到它?
答案 0 :(得分:8)
以这种方式使用Realm是一种不好的做法吗?
不,建议用于后台主题。
请参阅官方文档中的https://realm.io/docs/java/latest/#closing-realm-instances。
对于UI线程,建议使用onCreate()
/ onDestroy()
,因为如果关闭本地Realm实例,则绑定到它的结果将失效。需要打开Realm才能提供与Realm文件中结果的连接。