3

の後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);
}
4

2 に答える 2

2

簡単です。エラーを無視してください。

autoCompleteService.getAutoCompleteTerms(text).onErrorResumeNext(Observable.empty())

すべてのエラーを無視するため、これは潜在的に危険であることに注意してください。この場合はおそらく問題ありませんが、使いすぎには注意してください。

于 2016-12-21T22:18:47.257 に答える