Controller
+模式在 Android中EventBus
工作得很好,但是到处触发事件变得非常混乱。如果控制器多次被要求加载相同的数据,很容易让它第一次开始加载,并在加载时忽略后续请求,并在加载完成后开始监听未来的加载请求。如何使用 RxJava 做到这一点(使用 MVP 演示者?)
设想
我的 android 应用程序中有一个单例ColorModel
,它加载我最喜欢的颜色(来自多个来源),作为Observable<String>
(String == hexcode)。
我的ColorPresenter
钩子ColorModel
,将String
十六进制代码转换为Color
可以显示在ColorView
.
这些是我的逻辑的主要部分:
Observable<String> getColor()
(来自ColorModel
)Observable<Color> getColorForView()
(来自ColorPresenter
)subscribe()
(在ColorView
)
问题
- #1 在每个订阅上创建。如果我有多个演示者调用#1,这是非常浪费的。我不希望重复此步骤(仅在第一次调用时启动,然后在之后缓存)。
- 当我在 期间取消订阅时
onStop()
,#2 被取消(需要),但是取消订阅会上升到 #1 也被取消(不需要)。