2017-01-24 61 views

回答

3

你可以訂閱多個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與所有用戶共享同一源訂閱,即它們不會從每個新訂戶的源請求新的項目。新項目會傳播給所有當前訂閱的訂閱者。

+0

我不知道爲什麼。但是如果我將onClick包裝到Observable中,我需要一個share()運算符。否則只有一個用戶會接聽電話。 –

+0

@PhoenixWang這取決於你如何包裝它。不看代碼就看不清楚。嘗試在SO上張貼它作爲一個新問題。 –

+0

Thx。我想我知道了。我嘗試了RxBinding並且使用如下創建的正常包裝:Observable.create(e - > btn.setOnClickListener(v - > e.onNext(「」)));他們的工作原理一樣。只有最後一位用戶才能接聽電話。我讀了Observable的源代碼。所以基本上在Observable中,由於subscribeActual()方法的實現,每次只有一個Observer可以接收onNext調用。 –