我在Realm for Java https://realm.io/docs/java/latest/#closing-realm-instances的Doc中找到了,如果您有幸使用minSdkVersion> = 19和Java> = 7的应用程序,那么您可以使用try-与资源:
try (Realm realm = Realm.getDefaultInstance()) {
// No need to close the Realm instance manually
}
我想知道minSdkVersion> = 19需要realm.close()吗?或者只是为了线程和循环而不需要手动关闭Realm实例?
答案 0 :(得分:1)
文档说不是这个结构:
protected Void doInBackground(Void... params) {
Realm realm = Realm.getDefaultInstance();
try {
// ... Use the Realm instance ...
} finally {
realm.close();
}
return null;
}
您可以改为执行此构造(API 19 +)
protected Void doInBackground(Void... params) {
try (Realm realm = Realm.getDefaultInstance()) {
// ... Use the Realm instance ...
}
return null;
}
它们是等价的。
它并没有说您实际上并不需要关闭本地Realm实例,只是如果您在后台线程上使用它,您可以利用Realm implements Closable
的事实,因此{{1在} try with resources
中自动调用realm.close()
。