有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android中的java王国数据库快疯了

因此,我有以下问题:

    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 安卓.app.ActivityThread.handleReceiver(ActivityThread.java:3047)

现在"Realm instance has already been closed"他妈的怎么样了,什么时候realm.isClosed()==false


共 (1) 个答案

  1. # 1 楼答案

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