В моем случае ViewModel имеет состояние, которое он выставляет через getState(): Flowable<State>
, внутренне это лениво инициируемое поле, которое в основном создает текущее состояние, а затем "кэширует" его с помощью flowable.replay(1).autoConnect()
.
Конечным результатом является то, что фактическое создание состояния (например, выполнение запросов к базе данных и т. Д.) Выполняется один раз и используется повторно до тех пор, пока существует ViewModel, вместо того, чтобы создавать его заново всякий раз, когда кто-то использует состояние (например, когда видимость видна против скрытой).
Это творит чудеса, и хотя я не собираюсь менять его прямо сейчас (не меняйте то, что не сломано), меня очень впечатляют сопрограммы, и я бы очень хотел знать, есть ли способ получить точно такой же "поток" "с этим, используя недавно опубликованную функциональность Kotlins Flow .