Android minSdkVersion> = 19需要Realm.close()吗?

时间:2017-06-17 09:17:43

标签: java android realm

我在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实例?

1 个答案:

答案 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()