2016-05-16 111 views

回答

4

Realm中的所有提取都是懒惰的,数据永远不会被复制。因此,如果您想从RealmResults获取当前数据,则必须调用realm.copyFromRealm(results)。

public List<Model> getModelList() { 
    List<Model> list = new ArrayList<>(); 
    Realm realm; 
    try { 
     realm = Realm.getDefaultInstance(); 
     RealmResults<Model> results = realm 
       .where(Model.class) 
       .findAll(); 
     list.addAll(realm.copyFromRealm(results)); 
    } finally { 
     if (realm != null) { 
      realm.close(); 
     } 
    } 
    return list; 
} 
+0

您可以使用先进的技术,因为Java的1.7 '尝试(境mRealm = Realm.getDefaultInstance()){...做的工作...}赶上(例外五){Log.e(E) }'在最后使用这个语法realm.close是由它自己调用的 - 你必须将它称为explicity。 – murt

1

RealmResults <Ë>实现了Iterable <ê>接口,这样你就可以遍历:

for (E e : realmResults) { 
    // Do stuff 
} 

如果不回答这个问题,那么请准确,并添加代码的样本。

相关问题