Помимо ObserveOnDispatcher()
с использованием текущего диспетчера, а не "основного" диспетчера пользовательского интерфейса, я столкнулся с этим даже при использовании ObserveOn()
с определенным ранее захваченным диспетчером диспетчера.
Проблема оказалась в том, что использование некоторых наблюдаемых методов, в частности перегрузок Buffer()
с периодом времени, отключает наблюдаемое от его предыдущего контекста ObserveOn
и заставляет наблюдать его из отдельной задачи «таймер» , В результате, ObserveOn
должно быть сделано после вызова Buffer()
.