2016-05-16 113 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 
} 

如果不回答這個問題,那麼請準確,並添加代碼的樣本。

相關問題