我是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一个接一个地调用。
我试图添加编译&#34; com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0&#34;但也存在错误。
答案 0 :(得分:0)
你可以尝试这个例子。这可能有助于解决您的问题 https://github.com/dustin-graham/RxAndroid-Sample
答案 1 :(得分:0)
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,concat或combinelatest ...