在我的应用程序中,客户端使用由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