Java Android minSdkVersion>;需要Realm.close()19?

Java Android minSdkVersion>;需要Realm.close()19?,java,android,realm,Java,Android,Realm,我在Java领域的文档中发现,如果您有幸使用minSdkVersion>=19和Java>=7的应用程序,那么您可以使用try with resources: try (Realm realm = Realm.getDefaultInstance()) { // No need to close the Realm instance manually } 我想知道minSdkVersion>=19领域是否需要关闭()?或者只用于线程和循环,不需要手动关闭领域实例?文档中说,与此构造不同: pr

我在Java领域的文档中发现,如果您有幸使用minSdkVersion>=19和Java>=7的应用程序,那么您可以使用try with resources:

try (Realm realm = Realm.getDefaultInstance()) {
// No need to close the Realm instance manually
}

我想知道minSdkVersion>=19领域是否需要关闭()?或者只用于线程和循环,不需要手动关闭领域实例?

文档中说,与此构造不同:

protected Void doInBackground(Void... params) {
    Realm realm = Realm.getDefaultInstance();
    try {
        // ... Use the Realm instance ...
    } finally {
        realm.close();
    }

    return null;
}
您可以改为执行此构造(API 19+)

它们是等价的



它并不是说您实际上不需要关闭本地领域实例,只是如果您在后台线程上使用它,您可以利用领域
实现可关闭
,因此
尝试使用资源
自动调用
领域.close()
最后

您好@EpicPandaForce您说这仅仅是为了实现可关闭?在API 19+中,closable对象在try?Realm实现closable时关闭,因此if可以与
try with resources
一起使用。因此,Realm在
try(…){…}
末尾的Finally块中自动关闭。
protected Void doInBackground(Void... params) {
    try (Realm realm = Realm.getDefaultInstance()) {
       // ... Use the Realm instance ...
    }
    return null;
}