gpt4 book ai didi

android - 记得在所有 Realm 实例上调用 close() 但所有的东西都应该关闭

转载 作者:行者123 更新时间:2023-11-29 01:08:46 25 4
gpt4 key购买 nike

我在我的应用程序中有一个工作流,用户可以在其中保存一些东西,然后会出现一个对话框,提示登录。在我的 Android 监视器中,显示以下警告:“请记住在所有 Realm 实例上调用 close()。Realm/data/data/files/default.realm 正在完成但未关闭,这可能会导致 native 内存耗尽。 “

我阅读了文档 ( https://realm.io/docs/java/latest/ ),其中建议使用“try-with-resources” ( https://realm.io/docs/java/latest/#closing-realm-instances )。所以每个Realm Transaction都在里面

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

在这个 block 中我正在使用

                realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// do Something
}
});

总而言之:

try (Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// do Something
}
});
}

任何人都可以向我解释为什么会出现此警告吗?我什至尝试添加一个 finally block ,我手动关闭 Realm 实例。但这并不能避免警告。提前致谢!

最佳答案

我以以下解决方案结束。在我的常规类(class)中,我使用了这样的 try catch block :

try (Realm realm = Realm.getDefaultInstance()) {
Repository.doSomething(realm);
} catch (Exception e){
e.printStackTrace();
}

所以我在我的存储库类中使用 Realm 实例,它们在 try catch block 中返回数据后关闭。

感谢您的帮助!

关于android - 记得在所有 Realm 实例上调用 close() 但所有的东西都应该关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44948062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com