Controller
+ EventBus
模式在Android中運行得非常好,但到處都是觸發事件變得非常混亂。如果一個控制器要求多次加載相同的數據,那麼首次啓動加載很容易,並且在加載時忽略後續請求,並在加載完成後開始監聽將來的加載請求。我怎麼能做到這一點與RxJava(使用MVP主持人?)如何用RxJava演示者替換EventBus模式?
方案
我在我的Android應用程序一個單ColorModel
加載我最喜歡的顏色(from multiple sources),作爲Observable<String>
(字符串==十六進制編碼)。
我ColorPresenter
掛鉤插入ColorModel
,所述String
十六進制編碼轉換爲可顯示在一個ColorView
對象Color
。
這是我的邏輯的主要部分:
Observable<String> getColor()
(從ColorModel
)Observable<Color> getColorForView()
(從ColorPresenter
)subscribe()
(在ColorView
)
問題
- #1在每個訂閱上創建。如果我有多個主持人打電話給#1,這非常浪費。我不想重複這個步驟(只在第一次調用時啓動,然後緩存)。
- 當我在
onStop()
期間取消訂閱時,#2被取消(需要),但取消訂閱的泡泡最多也被取消(不需要)。
您需要向我們展示您的代碼。只是描述這是不夠的。 – Enigmativity
另外,第一個問題似乎並不是什麼大不了的事情 - 可觀察性的計算花費如何? – Enigmativity
@Enigmativity假裝它是非常昂貴的計算(我實際上沒有加載喜歡的顏色,它是一個簡化版本) – ZakTaccardi