【发布时间】:2016-06-14 16:58:08
【问题描述】:
我必须按顺序执行 3 个 API 调用
并且这样做
我用observable.concatMap(new Func1<>...)
最后一个我有一个订阅者要更改activity
但是我想在 UI 线程中更新 progressBar 以让用户知道部分任务已完成。
private void getAllData() {
updateUserTask(
getUserScheduleObservable(
getCurrentUserObservable()));
}
private void updateUserTask(Observable<TaskWrapper> observable) {
wrapObservable(observable)
.subscribe(new Subscriber<TaskWrapper>() {
@Override
public void onNext(TaskWrapper taskWrapper) {
openCurrentFragment();
hideProgressIndicators();
}
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable throwable) {
}
});
}
private Observable<TaskWrapper> getUserScheduleObservable(Observable<ScheduleWrapper> observable) {
return observable.concatMap(
scheduleWrappers1 -> apiManager.getRouteObservable(vehicleDeliveryAreaRiderBundle.getVehicle().getId()));
}
private Observable<ScheduleWrapper> getCurrentUserObservable() {
return apiManager.getUserObservable().concatMap(
user -> apiManager.getCurrentScheduleObservable()
);
}
【问题讨论】:
-
请检查我的答案
标签: android retrofit rx-java rx-android