使用try-with-resources和Realm是一个好的实践方法吗?

7
在许多地方都建议在ActivityonCreate方法中调用Realm.getDefaultInstance(),并在onDestroy(或相应的presenter方法)中调用Realm实例的close
然而,对我来说,更清晰的方式是使用Java的try-with-resources结构:
try (final Realm realm = Realm.getDefaultInstance()) {
  // do stuff 
}

为什么需要更简洁?在我看来,这样可以更容易地管理那个狭窄的realm实例的范围。在生命周期的某一时刻获取实例,在另一个时刻关闭它,这让我想起了使用C ++的旧日子,当时我们必须担心在正确的时刻调用delete

问题是:这种使用方式是否是不良实践? 为什么没有任何教程提到呢?

1个回答

10

在这种情况下使用Realm是不好的实践吗?

不,这是推荐用于后台线程的。

请参阅官方文档中的https://realm.io/docs/java/latest/#closing-realm-instances


对于UI线程,建议使用onCreate()/onDestroy(),因为如果关闭本地Realm实例,则绑定到该实例的结果将变为无效。Realm需要保持打开状态以便提供到Realm文件中结果的连接。


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