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 也被取消(不需要)。