Рассмотрим следующую наблюдаемую цепочку
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();
Журнал отчетов main.
Вопрос Почему расположение doOnSub влияет на поток, в котором он вызывается?,Разве вся цепочка не выполняется после нажатия метода подписки?,Я в замешательстве.