发布主题在订阅0123时出现在下一个订阅
问题描述:
我试图使用RxJava为我的模型创建代理,此代理让其他订阅模型中的更改。发布主题在订阅0123时出现在下一个订阅
这是我代理的一个简化版本:
class MyModelProxy {
private static MyModelProxy instance;
private MyModel model;
private PublishSubject<MyModel> subject;
private MyModelProxy() {
this.model = // load from cache
this.subject = PublishSubject.create();
}
public static Observable<MyModel> observe() {
if (instance == null) {
instance = new MyModelProxy();
}
return instance.subject;
}
private void modelUpdated() {
this.subject.onNext(this.model);
}
}
有在系统MyModel
只有一个实例,但它可能会随时间而改变,所以我希望能够为这些更新注册。
如果我在调用主题的onNext
之前在observe
方法返回的Observable
上注册,则此代码运行良好。
我想要的行为是当此观察者调用subscribe
方法时,MyModel
的当前实例将发送给刚订阅的订阅者。
我想过延长PublishSubject
但它是决赛,所以我想过写我自己的版本(主要是通过复制什么在PublishSubject
并添加什么,我需要),但后来我发现,SubjectSubscriptionManager
有包可见所以这是一个死胡同也是。
任何想法如何添加这个需要的功能?
谢谢。
答
还有BehaviorSubject
,这不正是你想要什么:发出最新的和未来的所有项目为其用户
权。感谢那! –