Страницы

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

воскресенье, 12 января 2020 г.

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

#java #rxjava


Суть проблемы такова: у меня есть 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.
    


Ответы

Ответ 1



Проблема была в том, что главный поток не дожидался окончания окончания выполнения RxJava'вского потока. В результате, RxJava даже не успевал "пискнуть" - от сюда никаких сообщений из System.out.println() и работы с файлами. Решение подсказали тут - https://stackoverflow.com/questions/37993371/rxjava-doesnt-work-in-scheduler-io-thread

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

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