onError
の後、私の観測が機能しなくなりました。どうすればそれを避けることができますか?ここでonErrorの後で観測を停止する方法
私のオートコンプリートは、観察およびサブスクリプションコードです:
public void subscribeAutoComplete() {
autoSubscription = RxTextView.textChangeEvents(clearableEditText)
.skip(1)
.map(textViewTextChangeEvent -> textViewTextChangeEvent.text().toString())
.filter(s -> s.length() > 2)
.debounce(400, TimeUnit.MILLISECONDS)
.flatMap(text -> autoCompleteService.getAutoCompleteTerms(text)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()))
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<String>>() {
@Override
public void onCompleted() {
Log.d("rx", "oncomplete");
}
@Override
public void onError(Throwable t) {
Log.e("rx", t.toString());
}
@Override
public void onNext(List<String> strings) {
autoAdapter = new ArrayAdapter<>(MainActivity.this,
android.R.layout.simple_dropdown_item_1line, strings);
clearableEditText.setAdapter(autoAdapter);
clearableEditText.showDropDown();
}
});
compositeSubscriptions.add(autoSubscription);
}
エラーが発生したときに正確に何をしたいですか? –
ちょうどそれを無視して移動してください。それはオートコンプリートです。たとえば、ネットワーク接続がない場合、onErrorが呼び出され、observableが停止します。私はそれがネットワーク接続が戻ったときに放出したい。 –
私はRxJavaに精通していませんが、 'retryWhen'のように聞こえます。 https://github.com/ReactiveX/RxJava/wiki/Error-Handling-Operators –