Course Content
-
Введение в RxJava 3.0. Способы создания Observable В первом модуле вы узнаете чем отличается Observable от Observer и поймете как создать источник данных
-
Основные операторы RxJava 3.0 Рассмотрим на примерах самые популярные операторы RxJava 3.0 такие как map(), flatMap(), filter() и другие.
-
Выходим в сеть с помощью RxJava
Оператор Observable.create()
Observable.create()
Одним из самых мощных методов для создания Observable является метод Observable.create(). create() – один из самых полезных методов, и его следует использовать для оборачивания кода в источники данных.
Для использования этого метода, необходимо в качестве аргумента передать имплементацию интерфейса ObservableOnSubscribe с методом subscribe() который вызывается каждый раз при появлении нового подписчика. В этот callback передаётся ObservableEmitter, с помощью которого мы можем передать необходимые данные с помощью метода onNext() или оповестить подписчика об ошибке или завершении с помощью методов onError() или onComplete() соответственно.
С помощью create() вы можете обернуть различные SDK, работу c UI, таким образом, чтобы со старым кодом можно было работать в реактивном стиле.
Например, вы можете обернуть работу с UI компонентом и таким образом подписываться на события, вызываемые действиями пользователя, например: нажатия, ввод текста, свайпы и другие. Вот примеры наиболее частых кейсов для использования:
- Необходим для оборачивания callback’ов в реактивный код
- Оборачивание Firebase SDK (Remote Config)
- Оборачивание UI событий чтобы работать в реактивном стиле
В данном примере с помощью create() мы можем передавать событие, что пользователь нажал на Drawable.
Кроме этого обратите внимание на метод setCancelable(). Создавая Observable с помощью метода create(), можно совершать действия, когда от источника отписываются. Например, чтобы не было утечек памяти или для отмены запросов.