Я новичок в Rx android. Когда я пытаюсь позвонить

Observable.from(imagesMulty).map(image -> printImage(image)).subscribe();
public  void printImage(Image image)
    {
Subscription addImage;  


addImage = retrofit.create(Restapi.class).addImage(image)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<Response<SlideResponse>>() {
                    @Override
                    public final void onCompleted() {
                        dismissProgress();

                }

                @Override
                public final void onError(Throwable e) {

                    e.printStackTrace();
                    dismissProgress();

                }

                @Override
                public void onNext(Response<SlideResponse> apiResponse) {
                    dismissProgress();
                    if (apiResponse.code() == 201) {


                    }

                }


            });
    subscriptions.add(addSlide);
    }

Он показывает Нет экземпляра переменной типа R, так что Observable соответствует Observable. Сообщите мне, что это за ошибка и как ее решить. Мое требование - сделать вызов api один за другим.

Я также попытался добавить compile "com.jakewharton.retrofit: retrofit2-rxjava2-adapter: 1.0.0", но ошибка все еще существует.

1
praj 30 Июн 2017 в 10:09

2 ответа

Вы можете попробовать этот пример. Это может помочь решить вашу проблему https://github.com/dustin-graham/RxAndroid-Sample

0
Nimisha V 30 Июн 2017 в 10:17

RxJava2 не позволяет использовать функцию Observable.from(). Использование использует com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0 с RxJava. (Конфликт версий)

Лучшая реализация должна быть такой (в Rxjava2)

Disposable subscription;
subscription = Observable.just(imagesMulty)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<String>() {
                @Override
                public void accept(@NonNull String s) throws Exception {
                    // do retrofit stuff
                }
            }, new Consumer<Throwable>() {
                @Override
                public void accept(@NonNull Throwable throwable) throws Exception {
                    throwable.printStackTrace();
                }
            });
subscription.dispose(); // Call in onDestroy() or onPause()

Если вы хотите объединить или заархивировать данные для модернизации с помощью оператора map, рассмотрите возможность использования zip < / a>, concat или combinelatest...

0
nhp 30 Июн 2017 в 10:27