Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 偶尔返回错误结果的领域查询_Android_Realm - Fatal编程技术网

Android 偶尔返回错误结果的领域查询

Android 偶尔返回错误结果的领域查询,android,realm,Android,Realm,我注意到,当我最近更新了某个类的一个对象,并试图获取这些对象的列表时,最近更新的对象返回的值是错误的 它不是每次都发生,但偶尔也会发生 数据被正确插入RealmDB中 我使用下面的代码片段从领域中获取 public static <T extends RealmModel> ArrayList<T> fetchAllForKey(Class<T> clazz, String key, boolean value) { Realm realm = Rea

我注意到,当我最近更新了某个类的一个对象,并试图获取这些对象的列表时,最近更新的对象返回的值是错误的

它不是每次都发生,但偶尔也会发生

数据被正确插入RealmDB中

我使用下面的代码片段从领域中获取

public static <T extends RealmModel> ArrayList<T> fetchAllForKey(Class<T> clazz, String key, boolean value) {
    Realm realm = Realm.getInstance(new RealmConfiguration.Builder().build());    
    RealmQuery query = realm.where(clazz);
    query.equalTo(key, value);
    RealmResults<T> results = query.findAll();
    ArrayList<T> list = realm.copyFromRealm(realmResults);
    realm.close;
    return list;
}
publicstaticarraylistfetchallforkey(类clazz,字符串键,布尔值){
Realm Realm=Realm.getInstance(新RealmConfiguration.Builder().build());
RealmQuery=realm.where(clazz);
query.equalTo(键,值);
RealmResults results=query.findAll();
ArrayList list=realm.copyFromRealm(realmResults);
realm.close;
退货清单;
}
我在RealmDB中有5个对象,当我使用上面的函数进行提取时,我会得到一个大小为5的列表,但有时它会返回一个大小为4的列表,即使我将数据保存在DB中,在后续提取时,它也会返回大小为5的列表


我正在试图找出realm返回错误值的原因以及缓解此问题的方法。

我认为这与您正在从非循环器后台线程进行复制有关,可能是在某个地方使用未关闭的本地realm实例,而不是依赖RealmChangeListener。我也面临着同样的问题。。这是因为未关闭的领域实例,