1
在Hello World示例有一個用戶如何訂閱Observable或Flowable的幾個訂戶?
public static void main(String[] args) {
Flowable.just("Hello world").subscribe(System.out::println);
}
如何使兩個或更多?
在Hello World示例有一個用戶如何訂閱Observable或Flowable的幾個訂戶?
public static void main(String[] args) {
Flowable.just("Hello world").subscribe(System.out::println);
}
如何使兩個或更多?
你可以訂閱多個subsperses任何可觀察/流動。根據需要重複撥打subscribe
多次。
Flowable<String> source = Flowable.just("Hello world");
source.subscribe(System.out::println);
source.subscribe(System.out::println);
...
有一個在熱和在路上冷觀測區別他們處理這樣的多個訂閱。
冷 observables/flowables從每個新訂戶的源重新請求項目。例如,Flowable.fromCallable(c)
每次訂閱時都會調用c
。
熱 observables/flowables與所有用戶共享同一源訂閱,即它們不會從每個新訂戶的源請求新的項目。新項目會傳播給所有當前訂閱的訂閱者。
我不知道爲什麼。但是如果我將onClick包裝到Observable中,我需要一個share()運算符。否則只有一個用戶會接聽電話。 –
@PhoenixWang這取決於你如何包裝它。不看代碼就看不清楚。嘗試在SO上張貼它作爲一個新問題。 –
Thx。我想我知道了。我嘗試了RxBinding並且使用如下創建的正常包裝:Observable.create(e - > btn.setOnClickListener(v - > e.onNext(「」)));他們的工作原理一樣。只有最後一位用戶才能接聽電話。我讀了Observable的源代碼。所以基本上在Observable中,由於subscribeActual()方法的實現,每次只有一個Observer可以接收onNext調用。 –