bycfly
bycfly

Reputation: 361

How to properly call Single/Maybe in RxJava2, do I need subscribeOn and observeOn and flatMap?

Does it make sense to use subscribeOn(Schedulers.io()) and observeOn(AndroidSchedulers.mainThread()) for RxJava2 Single and Maybe? It doesn't seem like it makes sense since Single and Maybe only emit one event?? So I have it as follows

Disposable disposable = getApi()
            .signOutUserMutation(new SignOutUserRequest())
            .subscribe(new Consumer<Response<ResponseBody>>() {
                @Override
                public void accept(Response<ResponseBody> responseBodyResponse) throws Exception {

                }
            }, (Throwable) -> {})

Would I need to map the results using flatMap or some sort?

Upvotes: 0

Views: 86

Answers (2)

Yudovin Artsiom
Yudovin Artsiom

Reputation: 109

Of cause you should use

subscribeOn(Schedulers.io()) and observeOn(AndroidSchedulers.mainThread()) It doesn't matter what you use : Single, Observable or Maybe.

The main reason is

  • Schedulers.io() - for input/output operations
  • AndroidSchedulers.mainThread() for computation work

Upvotes: 1

pratham kesarkar
pratham kesarkar

Reputation: 3818

You need to use subscribeOn() and observeOn() in your api as you want to switch thread when making an api request.or else you are going to get NetworkOnMainThreadException

Upvotes: 0

Related Questions