Search code examples
rx-javarx-java2

Why doOnSuccess can touch the ProgressBar even after set observeOn(Schedulers.io)


Why doOnSuccess can touch the ProgressBar even after set observeOn(Schedulers.io)?

...
.observeOn(Schedulers.io())
.doOnSuccess(mainDataModel -> view.setVisibility(View.VISIBLE))

I'm using Single observable.


Solution

  • observeOn affects downstream. It means it affects your doOnSuccess -> you are trying to do something about your view outside of the thread that created it (I'm guessing you are from Android ecosystem: in that case views are normally living on main thread, and correct scheduler for that would be AndroidSchedulers.mainThread())