Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在RxJava2中如何正确调用Single/Maybe,我需要subscribeOn、observeOn和flatMap吗?_Java_Android_Rx Java_Observable - Fatal编程技术网

在RxJava2中如何正确调用Single/Maybe,我需要subscribeOn、observeOn和flatMap吗?

在RxJava2中如何正确调用Single/Maybe,我需要subscribeOn、observeOn和flatMap吗?,java,android,rx-java,observable,Java,Android,Rx Java,Observable,使用subscribeOnSchedulers.io和observeOnAndroidSchedulers.mainThread用于RxJava2 Single和Maybe有意义吗?这似乎没有什么意义,因为它是单一的,而且可能只发出一个事件??因此,我有如下内容 Disposable disposable = getApi() .signOutUserMutation(new SignOutUserRequest()) .subscribe(new

使用subscribeOnSchedulers.io和observeOnAndroidSchedulers.mainThread用于RxJava2 Single和Maybe有意义吗?这似乎没有什么意义,因为它是单一的,而且可能只发出一个事件??因此,我有如下内容

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

                }
            }, (Throwable) -> {})

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

您需要在api中使用subscribeOn和observeOn,因为您希望在发出api请求时切换线程。否则,您将获得NetworkOnMainThreadException,因为您应该使用

subscribeOnSchedulers.io和observeOnAndroidSchedulers.Main线程 你用什么并不重要:单一的、可观察的或可能的

主要原因是

Schedulers.io-用于输入/输出操作 用于计算工作的AndroidSchedulers.main线程