将 Realm 与资源试用一起使用是否是一种好的做法?



在很多地方,建议在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 文件中结果的连接。

最新更新