2016-05-19 12 views
1

Ich benutze Realm-Java mit copyFromRealm, um losgelöste Kopien der Daten zu erstellen, da ich nicht die Komplexität der verbundenen Objekte benötigen.Wie kombiniere ich `.findAllAsync(). AsObservable()` mit `copyFromRealm`?

Ich versuche, mit RxJava zu kombinieren, also findAllAsync().asObservable() zu verwenden, das funktioniert, um ein Observable des Typs RealmResults zu produzieren. Dies betrifft jedoch immer noch angefügte Objekte.

Wie konvertiere ich dies:

public Observable<RealmResults<MyClass>> find(String id) { 
    return realm.where(MyClass.class) 
      .equalTo("id", id) 
      .findAllAsync() 
      .asObservable() 
      .filter(RealmResults::isLoaded); 
} 

auch realm.copyFromRealm(attachedRealmObject); Verfahren der Verwendung von Realm, so dass jedes Ergebnis automatisch aus Realm kopiert wird, ohne die RealmResults Liste iterieren mit und Lösen von Hand.

Antwort

4

copyFromRealm funktioniert auch auf Sammlungen, so sollte das unten funktionieren?

public Observable<RealmResults<MyClass>> find(String id) { 
     return realm.where(MyClass.class) 
       .equalTo("id", id) 
       .findAllAsync() 
       .asObservable() 
       .filter(RealmResults::isLoaded) 
       .map(results -> realm.copyFromRealm(results)) 
    } 
+0

Ja das funktioniert super. Meine benutzerdefinierte Realmabstraktion hat mich dazu gebracht, zu denken, dass es bei Sammlungen nicht funktionieren würde. Benutzerfehler Vielen Dank. –

Verwandte Themen