0
我試圖使用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
有包可見所以這是一個死衚衕也是。
任何想法如何添加這個需要的功能?
謝謝。
權。感謝那! –