2017-04-15 5 views
0

Ich benutze BehaviorSubject, um einen Strom von Ereignissen aus verschiedenen Quellen zu machen. vereinfacht ist, es so aussehen:So umgehen Sie onCompleted

BehaviorSubject subject = BehaviorSubject.create(); 
Observable<Integer> src1 = Observable.just(1, 2, 3); 
Observable<Integer> src2 = Observable.just(4, 5, 6); 
Observable<Integer> src3 = Observable.just(7, 8, 9); 
src1.subscribe(subject); 
src2.subscribe(subject); 
src3.subscribe(subject); 
subject.subscribe(this::log); 

In diesem Beispiel Werte von src1 nur angemeldet werden, da nicht mehr Gegenstand Abonnement wird nach src1 Abschluss existiert.

Wie könnte ich Abschluss-Ereignisse von allen Quellen umgehen? Gibt es einen Operator wie ignoreCompleted()?

+0

Warum ein Thema verwenden, um einen Strom von Ereignissen zu verbinden, wenn Sie einfach den Merge-Operator verwenden können? – JohnWowUs

+0

Weil ich viele Abonnenten habe. I.e. Ich teile Stream mit vielen Abonnenten. – Alexey

Antwort

0

verwenden, ignoriert onComplete() und onError(): https://github.com/JakeWharton/RxRelay

+0

Einfacher ist es, Betreff in Subscription zu wickeln, nur subject.onNext() aufrufen (und ich vermute, dass diese Bibliothek es genau tut). Wie auch immer, werde es versuchen, danke! – Alexey

Verwandte Themen