我正在用一个 Android 应用程序替换一个EventBus
模式。RxJava
我有事件提醒任何感兴趣的各方更新我的缓存单例中的数据。任何时候调用 Web 服务,数据都会更新,并且订阅者会通过发布的事件收到警报。
我在 RxJava 中使用AsyncSubject
. 观察者从主题中得到一个事件,然后他们得到一个onComplete
事件并取消订阅。这在 UI 第一次加载时起作用,但是当需要刷新数据时,不会通知订阅者。我如何告诉那些Subscribers
继续收听onNext
来自 的更多事件Subject
?
我需要一个Subject
报告最新项目的报告。PublishSubject
仅在订阅后发出项目,因此不太符合我的需求。我的订阅者在不同的时间开始观察(可能在第一个数据事件之后),所以我需要主题发出观察到的最后一个项目,然后为后续项目保持流打开。似乎我需要 AsyncSubject 和 PublishSubject 的组合。有没有办法通过内置的类来实现这一点,还是我需要创建自己的主题?
WebServiceObservable OR CacheObservable
^
|
AsyncSubject
^
|
/ \
/ \
/ \
UiObserver1 UiObserver2