Android 关闭UI线程上的域

Android 关闭UI线程上的域,android,realm,Android,Realm,关闭UI上的一个realm实例是否会关闭UI上的所有其他实例。我的crashlytics中出现了以下错误: Fatal Exception: java.lang.IllegalStateException: Realm instance has been closed or this object or its parent has been deleted. at io.realm.RealmList.checkValidView(Unknown Source) a

关闭UI上的一个realm实例是否会关闭UI上的所有其他实例。我的crashlytics中出现了以下错误:

Fatal Exception: java.lang.IllegalStateException: Realm instance has been closed or this object or its parent has been deleted.
       at io.realm.RealmList.checkValidView(Unknown Source)
       at io.realm.RealmList.size(Unknown Source)
       at io.realm.RealmBaseAdapter.getCount(Unknown Source)
       at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:826)
       at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:6728)
       at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
       at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
       at io.realm.RealmBaseAdapter$1.onChange(Unknown Source)
       at io.realm.RealmBaseAdapter$1.onChange(Unknown Source)
       at io.realm.internal.Collection$RealmChangeListenerWrapper.onChange(Unknown Source)
       at io.realm.internal.Collection$CollectionObserverPair.onChange(Unknown Source)
       at io.realm.internal.Collection$Callback.onCalled(Unknown Source)
       at io.realm.internal.Collection$Callback.onCalled(Unknown Source)
       at io.realm.internal.ObserverPairList.foreach(Unknown Source)
       at io.realm.internal.Collection.notifyChangeListeners(Unknown Source)
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:328)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:5728)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

这个错误的原因可能是什么,因为我被告知它是在切换片段时发生的。
realm.close()
的唯一出现是在
MainActivity

onDestroy()
方法中,当我将realm实例从活动传递到片段时,我遇到了相同的问题。这不是个好主意。。。根据文档中的段落,您需要为每个活动或片段打开自己的领域实例,并独立关闭它

另外,我还想为
MyFragment
sample注释一下:

//请注意,如果数据库很大,获取领域实例可能会短暂地阻止渲染。
//在这种情况下,最好从
//而不是启动/停止。立即从onCreateView返回视图允许 //初始化实例并加载视图时要渲染的片段帧


在我的例子中,这是非常有帮助的

这个答案取决于您在片段中打开/关闭UI线程的本地领域实例的位置。领域上的实例是
onCreateView()的本地实例
fragmentseems的方法问题不是域实例的关闭,而是在
RealmBaseAdapter中验证域对象失败
I在此处打开问题