Асинхронные взаимодействия

May 23, 2022 · View on GitHub

Главная

Асинхронные взаимодействия

Для подавляющего количества асинхронных задач следует использовать RxJava/RxKotlin.

Использование Rx, например в Presenter(при построении MVP архитектуры), помогает решить проблемы смены конфигурации.

Поток, в котором будет выполняться асинхронная задача следует указывать непосредственно перед подпиской на Observable. Это необходимо для выполнения составных асинхронных задач в одном потоке.

Для указания потока выполнения и потока подписки асинхронной задачи, обернутой в Observable присутствует класс SchedulersProvider из модуля rx-extension, предоставляющий доступ к Scheduler главного и рабочего потока. Использование классов rx.Schedulers и AndroidSchedulers запрещено. Эта абстракция была создана для возможности тестирования асинхронного взаимодействия между модулями.

Также в rx-extension представлены полезные интерфейсы и утилиты для работы с Rx.

В студийной практике принято оборачивать те или иные события в rx. Например, есть готовые обертки для: