Я впервые использую rxjava и прочитав о
subscribeOn(Schedulers.newThread())
observeOn(Schedulers.newThread())
Я понадеялся, что смогу сделать вот такую штуку:
Subject<DataObservable> commandToService.subscribeOn(Schedulers.newThread()).observeOn(Schedulers.newThread()).subscribe(observer);
//слушатель
private Observer<DataObservable> observer = new Observer<DataObservable>() {
@Override
public void onNext(DataObservable o) {
//какая-то долгая операция
}
};
private void postCommand(DataObservable command){
commandToService.onNext(command);
}
Я хотел, чтобы из разных частей программы, вызывался postCommand, а observer выполнял различные долгие операции. Но оказалось, что намерения, создаваемые postCommand выполняются синхронно, то есть пока не завершится одно намерение, новое не стартует, вопреки моему ожиданию.
Подскажите, можно ли заставить rxjava запускать намерения параллельно или мне придётся в observer.onNext создавать новые потоки самостоятельно?