使用Realm和try-with-resources是一个好习惯吗?

Pio*_*ski 6 java realm try-with-resources

在许多地方,也有建议称Realm.getDefaultInstance()onCreate的方法Activity,并呼吁close在领域实例onDestroy(或演示者的相应方法).

但是,对我来说,使用Java的try-with-resources构造会更简洁:

try (final Realm realm = Realm.getDefaultInstance()) {
  // do stuff 
}
Run Code Online (Sandbox Code Playgroud)

清洁为什么?IMO可以更轻松地管理该范围的realm实例.在生命周期的一个时刻获取实例并在另一个实例中关闭实例,让我想起过去使用C++的过去,当我们不得不担心delete在正确的时刻调用时.

问题是:以这种方式使用Realm是一种不好的做法吗?为什么没有教程提到它?

Epi*_*rce 8

以这种方式使用Realm是一种不好的做法吗?

不,这建议用于后台线程.

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


对于UI线程,建议使用onCreate()/ onDestroy(),因为如果关闭本地Realm实例,则绑定到它的结果将失效.需要打开Realm才能提供与Realm文件中结果的连接.