所以我有以下问题:
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/