尝试使用资源api pre 19

时间:2017-08-29 21:32:48

标签: java android android-studio

Question1Question2可能重复,但对我来说仍然不清楚。 他们说,仅使用19 api支持的资源试用,但请参考that question不是这样。

我已经使用Realm进行了测试。

boolean isClosed = RealmManager.isClosed(); //false here
try (Realm realm = RealmManager.getRealm()) {
     realm.executeTransaction(r -> r.where(User.class).findAll());
} catch (Exception ex) {
     ex.printStackTrace();
}
isClosed = RealmManager.isClosed(); //true here

public static boolean isClosed() {
    return realm == null || realm.isClosed();
}

它在22 api(真正的手机)和16 api(模拟器)上运行良好。 因此,对于大多数手机上的19 api,这个块能正常工作吗?在哪里是真的?

我使用Retrolabmda

Gradle配置:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

1 个答案:

答案 0 :(得分:1)

您可以使用Android Studio 3.0在所有API级别使用 try-with-resources

  

Android Studio 3.0 Preview 1及更高版本将support for try-with-resources扩展为所有Android API级别

此外,如果您为API级别构建应用程序,则需要向代码块添加注释@SuppressLint("NewApi")以隐藏警告。 19.如果是annotation is not applicable,您可以忽略警告,构建和运行您的应用程序,即使 try-with-resources 代码块突出显示为错误。