Android Volley RxJava - 多个请求

时间:2016-03-02 17:28:43

标签: java android android-volley rx-java reactive-programming

我有类似的东西:

public void function sendPhotosAndSave (ArrayList<Photo> photos) {

     // Iterate through all photos
     // Send a POST request using volley for each photo
     // Alert when all photos sended

     // ????
     .subscribe(new Subscriber<Boolean>() {
            @Override
            public void onCompleted() {
                // Save
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(Boolean aBoolean) {

            }
        });

}

我需要发送所有照片(Multipart / POST),然后发送保存请求。

如何使用RxJava迭代照片请求并知道它何时完成?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

    public void sendPhotosAndSave(List<Photo> photos) {
        Observable.from(photos)
                .flatMap(photo -> sendRequest(photo).subscribeOn(Schedulers.io()))
                .subscribe(new Subscriber<Boolean>() {
                    @Override
                    public void onCompleted() {
                        // Save
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(Boolean aBoolean) {

                    }
                });
    }

    private Observable<Boolean> sendRequest(Photo photo) {
        return Observable.just(/*your request logic*/);
    }