Как в RxJava асинхронно выполнять намерения?

234
04 февраля 2018, 01:09

Я впервые использую 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 создавать новые потоки самостоятельно?

READ ALSO
Random в java по длине ArrayList

Random в java по длине ArrayList

Имею вот такой код в Java:

230
Один файл анимации на 12кнопок

Один файл анимации на 12кнопок

Делаю приложение на androidВозникла проблема с корректным отображением анимации для 12ти кнопок

260
Тернарный оператор вместо конструкции if-else (2)

Тернарный оператор вместо конструкции if-else (2)

Задался вот этим вопросом(там тоже самое ввиде ответа удалю)

295
Write me a function that receives three integer inputs [требует правки]

Write me a function that receives three integer inputs [требует правки]

Write me a function that receives three integer inputs for the lengths of the sides of a triangle and returns one of four values to determine the triangle type (1=scalene, 2=isosceles, 3=equilateral, 4=error)

201