我的BLE外設Android應用程序寫入2個不同的設備特性,並接收來自其他2個設備的通知。 RxAndroidBle
庫的開發人員對同一個RxBleConnection
實例上的多個訂閱提出警告,但我沒有看到將所有這些I/O操作組合到一個單獨的.subscribe()
中的任何實際方式,特別是因爲其中一個通知是一個非常穩定的數據「消防水帶」。在RxJava中使用多個.subscribe()語句
不知道有什麼更好的,我一直只是將RxBleConnection
存儲在一個變量中,並將其用於多個.subscribe()
s。據我所知,這一直工作正常。我調查了RxAndroidBle
圖書館的ConnectionSharingAdapter
,但是,儘管我已經分析了代碼,但我不明白它提供的優點超過了我的簡單化方法(儘管我很想知道)。
一般來說,關於如何引入多個狀態和潛在陷阱的一些細節將會有所幫助。問題:
- 什麼是錯在變量存儲
RxBleConnection
和使用它的多.subscribe()
S' - 如果這是一個問題,
ConnectionSharingAdapter
如何解決它? - 說多個訂閱「引入狀態」是什麼意思,以及這怎麼會導致問題?
- 將所有四種特性I/O操作合併到一個單獨的
.subscribe()
(這不會降低性能)嗎?
這個問題有點太寬泛 - 向圖書館的開發人員詢問爲什麼_they_推薦多個訂閱可能更容易。從純粹的Rx觀點來看,只有一個主題(例如RxJava的'publish()')才能真正實現對同一個(冷)流的多個訂閱,而關於主題使用的討論則可能是一個更大的問題在這個網站和許多其他資源上有答案。 – Whymarrh
我問他們這個問題,他們告訴我將討論移到StackOverflow,所以我在這裏。 –