java - Realm DB 在 Android 中变得疯狂

标签 java android realm

所以我有以下问题:

    if (!realm.isClosed()){
        Log.d("PROVIDER realm not clsd", "closing now");
        realm.executeTransaction((t)->realm.close());
    }

这会抛出异常。在这里:

D/PROVIDER realm not clsd: closing now
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start receiver This Realm instance has already been closed, making it unusable.
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3047)

现在 “Realm 实例已经关闭” 到底是怎么回事,当 realm.isClosed()==false 时?

最佳答案

在您检查 realm.isClosed() 时,它确实没有关闭。但是,您已经打开了一个事务,为了完成它,仍然需要打开该 Realm 实例。问题是,您要在事务中关闭此实例。 简单的解决方案:从事务中删除 realm.close(),它不需要在一个中。

关于java - Realm DB 在 Android 中变得疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45239019/

相关文章:

关于多态性的Java接口(interface)问题

java - 当Android应用程序处于概览状态时如何更改 Activity/ View

java - Spring - 更改内容类型 HTTP header

java - 对同一按钮使用触摸和单击注释

swift - 空RLMArray的 Realm 查询

ios - 如何迁移未存储的 Realm 对象?

java - OperatingSystemMXBean CPU使用方法

Java - 保存对象(集合)的更好模型

java - 使用Java检查密码中的重复字符

java - 片段中的 Realm 生命周期