0

Я новый пользователь RxJava2, и я использовал другие методы defer, concat и create. Я пытаюсь найти способ реализовать то, что я описал выше.Возможно ли каким-либо образом удерживать выбросы Observable/Flowable и каким-то образом инициировать выбросы по мере необходимости?

Особая потребность в этом, у меня есть фрагмент, который показан и скрыт. Этот фрагмент имеет subscribers до EventBus событий. События запускаются службой, которую я продолжаю работать в фоновом режиме.

Я не хочу терять его выбросы, когда фрагмент скрыт. Вместо этого я хотел бы как-то сбросить выбросы, испускаемые, пока он скрыт, а затем испустить их, когда будет показан фрагмент.

Есть ли встроенное решение для этого с использованием API RxJava2?

ответ

4

Особая потребность в этом, у меня есть фрагмент, который показан и скрыт. У этого фрагмента есть подписчики событий EventBus. События - , вызванные службой, которую я продолжаю работать в фоновом режиме.

Я не буду использовать EventBus, если я уже использую RxJava

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

Для этой цели я бы использовал ReplaySubject. Из документации

ReplaySubject излучает любому наблюдателю все элементы, которые были испускаемых источником наблюдаемого (ами), независимо от того, когда наблюдатель подписывается.