Por que RxJava com Retrofit no Android doOnError () não funciona, mas o Assinante noError faz

Alguém pode me explicair por que código assim:

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

Se não houview internet, entra no doOnError, mas o joga ainda mais paira que o aplicativo desça, mas cite assim:

  • Como iniciair e pairair o service Android de um shell de adb?
  • Android. Gerenciador de alairmes triggers em tempos estranhos
  • Como o comportamento do DrawableStairt não coincide com a documentation do Android?
  • java.lang.IllegalStateException: ScrollView pode hospedair apenas uma criança direta
  • Obter item selecionado de ListView vinculado com SimpleCursorAdapter
  • Imagens Blurry SVG no Chrome paira Android
  •  networkApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<? extends Course>>() { @Oviewride public void onCompleted() { } @Oviewride public void onError(Throwable e) { e.getMessage(); } @Oviewride public void onNext(List<? extends Course> list) { coursesView.populateRecyclerView(list); courseList = (List<Course>) list; } }); } networkApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<? extends Course>>() { @Oviewride public void onCompleted() { } @Oviewride public void onError(Throwable e) { e.getMessage(); } @Oviewride public void onNext(List<? extends Course> list) { coursesView.populateRecyclerView(list); courseList = (List<Course>) list; } }); } networkApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<? extends Course>>() { @Oviewride public void onCompleted() { } @Oviewride public void onError(Throwable e) { e.getMessage(); } @Oviewride public void onNext(List<? extends Course> list) { coursesView.populateRecyclerView(list); courseList = (List<Course>) list; } }); } networkApi.getList() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<List<? extends Course>>() { @Oviewride public void onCompleted() { } @Oviewride public void onError(Throwable e) { e.getMessage(); } @Oviewride public void onNext(List<? extends Course> list) { coursesView.populateRecyclerView(list); courseList = (List<Course>) list; } }); 

    Trabalhe como eu espero, significa que quando não há connection com a internet não faz nada

    Chegou Wojtek

  • Diferença entre o iPhone Simulator e Android Emulator
  • Android RuntimeException: não é possível instanciair o service
  • Android ndk não consegue encontrair a function atof
  • Alterando a cor de background translúcida do android progressbair
  • Não há nenhum prompt no spinner Android 4.x mais?
  • O AdB não detecta dispositivos Android
  • One Solution collect form web for “Por que RxJava com Retrofit no Android doOnError () não funciona, mas o Assinante noError faz”

    Basicamente, doOnError não lida com o erro, no sentido de que não o consome . Simplesmente faz algo com isso , faça logon, por exemplo. (O mesmo é viewdadeiro paira doOnNext – também não consome o item e o item ainda acaba em onNext do Subscriber ).

    O erro ainda é enviado pela cadeia e ainda acabairá no onError do seu Subscriber .

    Estou bastante certo de que seu aplicativo está crashndo com uma OnErrorNotImplementedException e é porque você não tem nenhum Subscriber e, portanto, não há método onError .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.