replay()
и autoConnect(0)
.Метод
replay()
создает объект ConnectableObservable
, который кэширует все элементы, отправляемые оригинальным hot observable.Как было описано ранее,
ConnectableObservable
начинает эмитить элементы, когда на нем вызывается метод connect()
.Чтобы получить поведение обычного cold observable, на
ConnectableObservable
вызывается метод autoConnect(numberOfSubscribers: Int)
. Этот метод принимает параметром переменную типа Int
, которая задает количество подписчиков, необходимых для вызова connect()
. Если параметром передано неположительное число, то connect()
вызывается сразу.В результате последовательного вызова
replay()
и autoConnect(0)
создается observable, который эмитит все закэшированные элементы при вызове на нем subscribe()
, т.е. ведет себя как cold observable.