如何在RxJava2中正确调用Single / Maybe,我是否需要subscribeOn和observeOn以及flatMap?

时间:2018-01-23 05:05:58

标签: java android rx-java observable

对于RxJava2 Single和Maybe使用subscribeOn(Schedulers.io())observeOn(AndroidSchedulers.mainThread())是否有意义?它似乎没有意义,因为Single和Maybe只发出一个事件?所以我有如下

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

                }
            }, (Throwable) -> {})

我是否需要使用flatMap或某种类型映射结果?

2 个答案:

答案 0 :(得分:0)

您需要在api中使用subscribeOn()observeOn(),因为您想在发出api请求时切换线程。否则您将获得NetworkOnMainThreadException

答案 1 :(得分:0)

原因你应该使用

subscribeOn(Schedulers.io())observeOn(AndroidSchedulers.mainThread()) 使用什么并不重要:Single,Observable或Maybe。

主要原因是

  • Schedulers.io() - 用于输入/输出操作
  • 用于计算工作的AndroidSchedulers.mainThread()