私は各30秒後付でREST呼び出し実行され、次の観測がありますRxJava:(遅れて)例外と再試行を公開
Subscription subscription = Observable.interval(0, REFRESH_INTERVAL, TimeUnit.SECONDS)
.concatMap(new Func1<Long, Observable<Response>>() {
@Override
public Observable<Response> call(Long time) {
return webservice.callRetrofitServiceWithRx(parameter);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new UpdateSuccessAction(), new UpdateErrorAction());
それは(特にRESTコールが起こることがあり)は例外をスローします(インターネットに接続していないなど)。
私が達成したい何:
(30秒後に再試行)私はUIにエラーメッセージを表示することができるように観察可能で、例外を公開/発しなければならないが、それはアイテムを放出継続すべきです。私が観察が例外を放出し(= NO 30秒で再試行)動作を停止し、特別な動作を定義していない場合は
現在
を研究します。
リトライ演算子を試すと、例外が飲み込まれて公開されないため、エラーは表示されません。
私はonErrorReturn演算子を試すと例外を処理できますが、私が知る限り再試行はできません。
回避策
私の現在の回避策は、この観測に再加入することですが、私は誰かがよりエレガントな解決策を持っているかどうかを知りたいと思います。
クール、おかげでたくさん! – Christopher