Чем отличаются hot и cold Observables в RxJava?

Посмотреть в Telegram: @AndroidSobes/98
В RxJava есть два вида Observable: Hot и Cold.

Cold Observable:
• Не рассылает объекты, пока на него не подписался хотя бы один подписчик;
• Если observable имеет несколько подписчиков, то он будет рассылать всю последовательность объектов каждому подписчику.

Пример cold observable – методы ретрофит-интерфейса. Каждый раз когда вызывается метод subscribe(), выполняется соответствующий запрос на бэкенд и подписчик получает объект-респонс.

Hot Observable:
• Рассылает объекты, когда они появляются, независимо от того есть ли подписчики;
• Каждый новый подписчик получает только новые объекты, а не всю последовательность.

Пример hot observable – observable, рассылающий клик-ивенты на view. Смотрите библиотеку RxBinding.

Подробнее про hot и cold observables.