RxJava中的线程切换

567 阅读1分钟

默认线程

操作符所在的当前线程

线程切换ObserveOn()

改变下游事件发生的线程,作用域向后。

线程切换SubscribeOn()

改变上游事件发生的线程,作用域向前。

  • 可以改变初始的默认线程

注意

ObserveOn() 之后的 SubscribeOn() 是无效的

compose的作用

可对多个重用的操作符进行封装
例如线程切换

  public static <T> FlowableTransformer<T, T> rxSchedulerHelper() {    //compose简化线程
        return new FlowableTransformer<T, T>() {
            @Override
            public Flowable<T> apply(Flowable<T> observable) {
                return observable.subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread());
            }
        };
    }