In RxJava 1 Subskription mit einem Observer gab ein Abonnement zurück, das abgemeldet werden konnte.Disposable für Beobachter
In RxJava 2 Subskription mit einem Observer gibt void und keine Disposeable zurück. Wie ist es möglich, dieses "Abonnement" zu stoppen?
// v1
rx.Observable<Long> v1hot = rx.Observable.interval(1, TimeUnit.SECONDS);
rx.Observer<Long> v1observer = new TestSubscriber<>();
Subscription subscription = v1hot.subscribe(v1observer);
subscription.unsubscribe();
// v2
Observable<Long> v2hot = Observable.interval(1, TimeUnit.SECONDS);
Observer<Long> v2Observer = new TestObserver<>();
v2hot.subscribe(v2Observer); // void
EDIT: wie den Fall behandeln, in denen wir einen Beobachter zu benutzen, die sich Disposable
nicht implementiert, wie BehaviorSubject
? Wie in diesem Beispiel:
// v1
rx.Observable<Long> v1hot = rx.Observable.interval(1, TimeUnit.SECONDS);
rx.Observer<Long> v1observer = rx.subjects.BehaviorSubject.create();
Subscription subscription = v1hot.subscribe(v1observer);
subscription.unsubscribe();
// v2
Observable<Long> v2hot = Observable.interval(1, TimeUnit.SECONDS);
Observer<Long> v2Observer = BehaviorSubject.createDefault(-1L);
v2hot.subscribe(v2Observer); // void
In diesem speziellen Fall funktioniert das. Was aber, wenn das nicht umgesetzt wird? Wie wenn es ein Thema (aktualisierte Frage) ist. –
Ich habe meine Antwort aktualisiert. –
Danke! Ich frage mich, warum sie das geändert haben. Das ist sehr unpraktisch. –