考虑以下可观察链
Observable.just(1).
doOnSubscribe(disposable -> Log.d("ThreadInDoSub", Thread.currentThread().getName())).
subscribe();
日志报告线程是主线程。这没关系。现在
Observable.just(1).
doOnSubscribe(disposable -> Log.d("ThreadInDoSub", Thread.currentThread().getName())).
subscribeOn(SchedulerProvider.getInstance().io()).
observeOn(SchedulerProvider.getInstance().ui()).
subscribe();
日志报告RxCachedThreadScheduler。现在
Observable.just(1).
subscribeOn(SchedulerProvider.getInstance().io()).
observeOn(SchedulerProvider.getInstance().ui()).
doOnSubscribe(disposable -> Log.d("ThreadInDoSub", Thread.currentThread().getName())).
subscribe();
日志报告主。
问题
为什么doonsub的位置会影响调用它的线程?。整个链不是在命中subscribe方法时执行的吗?我很困惑。