如何在 RxAndroid 中使用工作线程 [英] how to use worker thread in RxAndroid

查看:58
本文介绍了如何在 RxAndroid 中使用工作线程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 RxAndroid,如下面发布的代码所示.首先,我知道要使用 .delay() 我必须通过Schedulers.io"让它在工作线程上工作,但 Schedulers 类不提供或没有.io"线程.如何使用它

I am trying to use RxAndroid as shown in the below posted code. firstly, I know that to use .delay() I have to have it work on a worker thread through "Schedulers.io" but Schedulers class does not provide or have ".io" thread.How to use it

compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'

代码:

    Observable observable1 = Observable.just("2");
    Observable observable2 = Observable.just("7");
    Observable observable = Observable.zip(observable1, observable2, (i1, i2) -> {

        return i1 + ", " + i2;

    })
            .delay(10, TimeUnit.SECONDS, .....)//how to use a worker thread here
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(Object value) {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            });

推荐答案

您可以在此处提供 Schedulers.io() 或 Schedulers.computation() 或任何线程.下面我修改了您的代码并提供了答案.

You can provide Schedulers.io() or Schedulers.computation() or any thread here. Below I modified your code and provided the answer.

Observable observable1 = Observable.just("2");
Observable observable2 = Observable.just("7");
Disposable d = 
  Observable.zip(
        observable1, observable2, (i1, i2) -> {
            return i1 + ", " + i2;
        }
    )
    .delay(10, TimeUnit.SECONDS, Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Observer() {
        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onNext(Object value) {

        }

        @Override
        public void onError(Throwable e) {

        }

        @Override
        public void onComplete() {

        }
    });
}

还有一件事我想在这里提一下.一旦订阅了 Observable,它就会返回 disposable.我也对您的代码进行了更改.

One more thing I would like to mention here. Once an Observable is subscribed, it returns disposable. I have made that changes too in your code.

希望这个回答对您有所帮助.

Hope this answer helps you.

这篇关于如何在 RxAndroid 中使用工作线程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆