Observable.subscribeOn(Scheduler scheduler)函数指定Observable的工作需要在指定的Scheduler线程中执行。Observable.observeOn(Scheduler scheduler)指定Observable在哪个Scheduler线程触发订阅者们的onNext(),onCompleted(),和onError()函数,并调用Observable的observeOn()函数,传递正确的Scheduler给它。
下面是可能会用到Scheduler:
Schedulers.computation():用于计算型工作例如事件循环和回调处理,不要在I/O中使用这个函数(应该使用Schedulers.io()函数);
Schedulers.from(executor):使用指定的Executor作为Scheduler;
Schedulers.immediate():在当前线程中立即开始执行任务;
Schedulers.io():用于I/O密集型工作例如阻塞I/O的异步操作,这个调度器由一个会随需增长的线程池支持;对于一般的计算工作,使用Schedulers.computation();
Schedulers.newThread():为每个工作单元创建一个新的线程;
Schedulers.test():用于测试目的,支持单元测试的高级事件;
Schedulers.trampoline():在当前线程中的工作放入队列中排队,并依次操作。
通过设置observeOn和subscribeOn调度器,我们定义了网络请求使用哪个线程(Schedulers.newThread())。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于