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