2016-05-16 12 views

Antwort

4

Alle Abrufe sind in Realm faul, und die Daten werden niemals kopiert. Wenn Sie also aktuelle Daten von RealmResults abrufen möchten, müssen Sie realm.copyFromRealm (results) aufrufen.

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

können Sie fortgeschrittene Technik verwenden, da Java 1.7 'versuchen (Realm mRealm = Realm.getDefaultInstance()) {... den Job ...} catch (Exception e) {Log.e (e) } 'Mit dieser Syntax am Ende wird realm.close von selbst aufgerufen - Sie müssen es explizit nennen. – murt

1

RealmResults <E> implementiert die Iterable <E> Schnittstelle, so dass Sie mit laufen können:

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

Wenn dies nicht die Frage beantworten, dann präzise es bitte und eine Probe von Code hinzufügen.

Verwandte Themen