Рубрики
Без рубрики

RxJava – Сделайте вашу Асинхронную задачу Синхронной

В Android framework мы должны выполнять всю трудоемкую работу в фоновом потоке. Это звучит просто… С тегами android, rxjava, threading, java.

В Android framework мы должны выполнять всю трудоемкую работу в фоновом потоке. Это звучит просто, но поверьте мне, реализация – это боль. Если вы используете kotlin, вы можете использовать doAsync или сопрограмму но если вы используете RxJava, вы можете добиться этого без особых изменений в вашем коде. У меня есть вариант использования, когда я должен загружать данные файлы в фоновом режиме с помощью WorkManager. Что ж, вот тут и возникает проблема: “Мы должны загрузить все изображения, а затем вернуть результат успеха или неудачи или повторить попытку менеджеру работ”. Как нам удерживать поток до завершения загрузки? Первоначально я решил это с помощью CountDownLatch, я внедрил и получил рабочий код с этим. Но это был грязный код.

Если вы используете RxJava, мы можем сделать это с помощью оператора “blocking Get()”, для этого ваша наблюдаемая должна быть “Single”.

Если вы используете RxJava, мы можем сделать это с помощью оператора “blocking Get()”, для этого ваша наблюдаемая должна быть “Single”.

Оригинал: “https://dev.to/balakrishnanpt/rxjava-make-your-async-task-synchronous-2f3n”