Ich lese eine Menge Literatur über die Rx und auf der einen Seite ist alles klar, aber auf der anderen Seite ist nichts klar. Ich versuche, eine einfache Filterung und Speicherung von Daten vom Server mit dieser Bibliothek durchzuführen, und es funktioniert nicht wie erwartet. Ich brauche eine einfache Kanallistenverwaltung zu implementieren:RxAndroid. Einfaches Cachen und Filtern von Daten
1. Cache on disk and in memory
2. When user requested - return filtered channels
3. All Subscribers that was attached to this Observable must be notified if filtered cahnnels list was changed (call onNext() for all Subscribers)
schrieb ich folgendes:
ArrayList<Channel> channels = null;
ArrayList<Channel> filteredChannels = null;
Observable<ArrayList<Channel>> filteredObservable = Observable.create()
// here I need to check if cache is valid, if no - download from server
// then filter channels and return filteredChannels in onNext call
// all subscribers that called subscribe before and not called unsubscribe must be notified if filteredChannels changed
// how to implement this?
.subscribeOn(Schedulers.io());
public void setFilter(Filter filter) {
// update filteredChannels with the new filter and notify all Subscribers (call onNext()). How to implement this?
}
public Observable<ArrayList<Channel>> getFilteredChannels() {
return filteredObservable;
}
Habe ich das richtig verstanden Logik des Rx-Muster oder nicht? Danke im Voraus.