多个可观察到的一个用户

多个可观察到的一个用户

问题描述:

我需要消耗来自多个来源的事件。源的数量可能会有所不同,源可能会被添加或删除。多个可观察到的一个用户

由于我希望有可能在不需要重新订阅的情况下更改一组资源,因此merge不是。

试过类似

PublishSubject<Integer> sourcesSubject = PublishSubject.create(); 

sourcesSubject.subscribe(...); 

Observable<Integer> source1 = ...; 
source1.subscribe(sourcesSubject); // add first source 

Observable<Integer> source2 = ...; 
source2.subscribe(sourcesSubject); // add second source 

..... // How to remove a source? 

,但不知道如何删除源。

有没有简单的解决方案?

+0

这味道像一个XY问题。你想要这个的原因是什么? –

有没有发现删除源最简单的方法:

Observable<Integer> source = ...; 
Subscription subscription = source.subscribe(sourcesSubject); // add source 
subscription.unsubscribe(); // remove source 

我建议看看结合运营商如merge(和实例变种mergeWith)或concatconcatWith),这将消除需要使用Subject。当您取消订阅时,所有来源将停止。