java.lang.IllegalStateException: This Realm instance has already been closed, making it unusable.

在使用Realm访问数据库的时候,报java.lang.IllegalStateException: This Realm instance has already been closed, making it unusable.异常。

原因:

查询完数据,使用查询结果的时候,数据没有拷贝到内存中,Realm的数据总是实时访问的。

eg:

Realm realm = Realm.getDefaultInstance();

myObject = realm.where(....).findFirst();

realm.close();

String name  = myObject.getName();

这样使用,就会报该异常。

修改如下:

Realm realm = Realm.getDefaultInstance();

myObject = realm.where(....).findFirst();

MyObject o = realm.copyFromRelam(myObject);

realm.close();

String name  = o.getName();

 

参考链接:

https://stackoverflow.com/questions/41447871/this-realm-instance-has-already-been-closed-making-it-unusable-rxjava

https://groups.google.com/forum/#!topic/realm-java/-OrSlAu9jdo

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章