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