从Observable创建BehaviorSubject

use*_*986 10 reactive-programming rx-java

假设我有一个observableA从网络获取数据并发出它的数据,如果我每次尝试从网络请求数据时都会订阅这个observable.

我想创建BehaviorSubject并将其连接到observableA,以便任何其他线程/对象将订阅BehaviorSubject以获取最新发出的数据.

到目前为止,我无法管理代码.我无法创建空的BehaviorSubject并在observableA中调用,因为它们彼此不相关.我不能订阅observableA并将BehaviorSubject作为观察者,任何想法如何实现它?或者甚至更好?

zsx*_*ing 4

您可以使用multicast。例如,

Observable<String> o = ...;
ConnectableObservable<String> co = o.multicast(BehaviorSubject.<String> create());
co.connect();
co.subscribe(...);
co.subscribe(...);
co.subscribe(...);
Run Code Online (Sandbox Code Playgroud)