学习小目标
1、了解Schedulers类,以及通过其创建的各种Scheduler的用途
2、结合上一篇RxJava系列1:网络请求中的线程切换理解该类创建的各类型线程作用
讲到了线程的切换,其中使用到了observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
这篇文章主要是学习Schedulers.io()和AndroidSchedulers.mainThread()等一些列相关参数,首先我们需要了解Schedulers类
1、Schedulers类
用于返回标准Scheduler实例的静态工厂方法
该类通过静态内部类的方式返回不同的Scheduler,先看源码,然后对各实例进行解释
Schedulers源码:
public final class Schedulers {
static final Scheduler SINGLE;
static final Scheduler COMPUTATION;
static final Scheduler IO;
static final Scheduler TRAMPOLINE;
static final Scheduler NEW_THREAD;
static final class SingleHolder {
static final Scheduler DEFAULT = new SingleScheduler();
}
static final class ComputationHolder {
static final Scheduler DEFAULT = new ComputationScheduler();
}
static final class IoHolder {
static final Scheduler DEFAULT = new IoScheduler();
}
static final class NewThreadHolder {
static final Scheduler DEFAULT = NewThreadScheduler.instance();
}
static {
SINGLE = RxJavaPlugins.initSingleScheduler(new Callable<Scheduler>() {
@Override
public Scheduler call() throws Exception {
return SingleHolder.DEFAULT;
}
});
COMPUTATION = RxJavaPlugins.initComputationScheduler(new Callable<Scheduler>() {
@Override
public Scheduler call() throws Exception {
return Com