Оператор RxJava, ожидающий отправки, пока у него не появится подписчик

Я ищу ConnectableObservable или Subject, который при отсутствии подписчиков будет кэшировать значения и ждать их выдачи, пока не произойдет подписка. Но если подписчики есть, они не кэшируются, и новые подписчики не получат предыдущие события.

Взгляните на эти компоненты: github.com/akarnokd/RxJava2Extensions/blob/master/…

akarnokd 11.07.2018 13:27

Спасибо, я думаю, что могу жить с Unicast или Dispatch для моего варианта использования, но почему нет многоадресной версии?

miguel 11.07.2018 22:01

Что вы имеете в виду под многоадресной версией?

akarnokd 11.07.2018 22:55

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

miguel 11.07.2018 23:23

MulticastWorkSubject

miguel 12.07.2018 20:47

BehaviorSubject?

M. Reza Nasirloo 13.07.2018 18:07

Не BehaviorSubject, потому что я не хочу, чтобы он кешировался, когда есть наблюдатель.

miguel 13.07.2018 18:21

Нет компонента, который кэширует только тогда, когда нет потребителя, и в противном случае отправляет одни и те же элементы нескольким потребителям. Я предлагаю вам переосмыслить свой поток данных.

akarnokd 15.07.2018 10:04

Поток данных, который я ищу, аналогичен оператору SingleLiveEvent LiveData, описанному в этом потоке github, хотя я бы хотел использовать вместо этого rxjava и хотел бы, чтобы при отсутствии наблюдателей кэшировалось более одного события. github.com/googlesamples/android-architecture-components/iss‌ ues /…

miguel 23.07.2018 07:29

@miguel ты когда-нибудь догадывался? Я столкнулся с той же проблемой

C2H6O 21.11.2019 02:19

Я использую UnicastWorkSubject с некоторым успехом, хотя я сталкивался с сложными ситуациями жизненного цикла активности, когда я получаю IllegalStateException · Only one Observer allowed at a time, и его трудно отлаживать. Я также добился успеха с помощью LiveData SingleLiveEvent.

miguel 22.11.2019 01:52
1
11
173
0

Другие вопросы по теме