Страницы

Поиск по вопросам

среда, 6 марта 2019 г.

RxJava не работает с файлами в io() потоке

Суть проблемы такова: у меня есть Observable и Subscriber. Observable я пытаюсь запустить в io() потоке, так как он работает с файлами (не буду показывать код, он довольно большой, но не имеет значения), однако он ничего не делает:
Observable creatingObservable = getCreatingObservable(image); Subscriber creatingSubscriber = getCreatingSubscriber();
creatingObservable .subscribeOn(Schedulers.io()) .subscribe(creatingSubscriber);
Если запускать код без subscribeOn - все прекрасно работает. Так в чем же проблема и как ее исправить?

P.S. У меня еще System.out.println() не работает. Проблема распространяется на все потоки Scheduler'a


Ответ

Проблема была в том, что главный поток не дожидался окончания окончания выполнения RxJava'вского потока. В результате, RxJava даже не успевал "пискнуть" - от сюда никаких сообщений из System.out.println() и работы с файлами.

Решение подсказали тут - https://stackoverflow.com/questions/37993371/rxjava-doesnt-work-in-scheduler-io-thread

Комментариев нет:

Отправить комментарий