rxAndroid retrofit从序列中获取每次调用的结果

时间:2016-06-14 16:58:09

标签: android retrofit rx-java rx-android

我必须在序列中执行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()
        );
}

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找这样的东西。

$values= file_get_contents($url2);

只要连接这些可观察量,就可以达到预期的效果。

希望它有所帮助。

祝你好运。