在我的應用程序中,客戶端使用由Observable
支持的服務。每個服務調用都是基於會話的,因此必須在調用業務服務方法之前啓動會話。防止觀察對象被啓動,除非另一個觀察對象完成它的工作
爲了初始化會話,我做了一個Observable
這樣做。我的問題是,無論何時客戶端並行使用多個業務服務,會話初始化都會被重複。客戶端代碼與會話無關。我需要一種初始化會話的方式,以便只能調用一次會話(當第一個業務服務方法被調用時)。基本上所有後續的業務觀察員都必須等待條件(會話初始化)。你能爲它畫一個圖案嗎?
客戶端代碼是這樣:
protected void onCreate(Bundle savedInstanceState) {
itemService.getItems(10).subscribe(new Observer<List<Item>>() {..});
userService.getProfile().subscribe(new Observer<List<Profile>>() {..});
}
雖然是2個電話,需要進行會話Observable
一次只執行,使企業Observable
拭目以待用於會話初始化完成,然後開始做它的工作。
謝謝。
我不完全理解的問題,但也許你可以看看這裏的發佈連接模式:https://github.com/ReactiveX/RxJava/wiki/Connectable-Observable-Operators – nikoniko 2014-09-08 05:00:22