gpt4 book ai didi

android - 如何在android中关闭 Realm 对象

转载 作者:行者123 更新时间:2023-11-29 19:08:50 34 4
gpt4 key购买 nike

我正在尝试检查是否有任何 Realm 对象在事务中,以便我可以删除整个数据库。但是这个语句总是返回falseRealm.getDefaultInstances().isClose() 我哪里做错了。请有人解释一下。

 if(!Realm.getDefaultInstances().isInTransaction()){

Realm.getDefaultInstances().close();
if(Realm.getDefaultInstances().isClosed()){
Realm.getDefaultInstance().executeTransaction(new Realm.Transaction(){
@Override
public void execute(Realm realm) {
realm.deleteAll();

realm.close();

}
});

}
}

最佳答案

Realm 实例是引用计数的,因此在每个方法之前调用 Realm.getDefaultInstance() 会将您的示例中的计数增加到至少 4,这意味着您需要调用 .close( ) 也是 4 次。

请注意,在事务 lambda 中调用 close() 将导致事务不被提交。关闭必须在外面。

我强烈推荐阅读这两个关于控制 Realm 生命周期的部分:

https://realm.io/docs/java/latest/#closing-realms

https://realm.io/docs/java/latest/#realm-instance-lifecycle

关于android - 如何在android中关闭 Realm 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46149392/

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