Intereting Posts
В приложениях Android какова роль «R.java»? Как определить использование размера кучи приложения для Android Обновить анимацию элемента меню в ActionBarSherlock Как легко генерировать звуки синтезаторов в Android? Является ли api ключом в аттестации SafetyNet? Выберите целевой API в предпросмотре дизайна макета Android Studio SetBackground vs setBackgroundDrawable (Android) Событие кликов AutoCompleteTextView на Android Изменение цвета фона вкладки TabLayout (библиотека поддержки дизайна Android) не занимает всего пространства табуляции Как ограничить скорость подключения к Интернету на эмуляторе Android? Как использовать неподдерживаемое исключение для более поздней версии платформы Как увеличить лимит времени для записи в формате ADB Android Kitkat Загрузите div в веб-просмотр на Android Как сделать селектор в андроид-студии Динамическая настройка содержимого и макета виджета до размера, определяемого пользователем путем изменения размера. Android

Почему RxJava с доработкой на Android doOnError () не работает, но Subscriber onError делает

Может кто-нибудь объяснить мне, почему код выглядит так:

networApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .doOnError(throwable -> { throwable.getMessage(); }) .doOnNext(list -> { coursesView.populateRecyclerView(list); courseList = (List<Course>) courses; }).subscribe(); 

Если в DoOnError нет Интернета, он добавляет его дальше, поэтому приложение не работает, но код выглядит следующим образом:

 networkApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<? extends Course>>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { e.getMessage(); } @Override public void onNext(List<? extends Course> list) { coursesView.populateRecyclerView(list); courseList = (List<Course>) list; } }); 

Работайте, как я ожидаю, это означает, что когда нет подключения к интернету, он ничего не делает

Приветствия Wojtek

Solutions Collecting From Web of "Почему RxJava с доработкой на Android doOnError () не работает, но Subscriber onError делает"

В принципе doOnError не обрабатывает ошибку, в том смысле, что она ее не потребляет . Он просто что-то делает с ним , например, запишите его. (То же самое верно для doOnNext – он также не потребляет элемент, и элемент все равно попадает в onNext Subscriber ).

Ошибка по-прежнему отправляется по цепочке и все равно onError в onError вашего Subscriber .

Я полностью уверен, что ваше приложение сбой с OnErrorNotImplementedException и это потому, что у вас нет Subscriber вообще, и поэтому нет метода onError .