Rx java 确保热可观察物发出的所有物品仅消耗一次

Rx java 确保热可观察物发出的所有物品仅消耗一次,rx-java,Rx Java,我有: 在某个点发射一个项目的热可观测源 并完成 多个观察者持续订阅/取消订阅 到/从源,但最多可以同时订阅一个 时间 我想将源转换为一个可观察的对象,以确保该项被观察者准确地消费一次。稍后订阅的观察者只应被通知该项目已在完成事件中被消耗 预期行为: 1观察者订阅之前源的发射 --O-|------> (source) -----^-O-|-> (observer) ------O-|-> (source) --^---O-|-> (observer) 2

我有:

在某个点发射一个项目的热可观测源 并完成 多个观察者持续订阅/取消订阅 到/从源,但最多可以同时订阅一个 时间 我想将源转换为一个可观察的对象,以确保该项被观察者准确地消费一次。稍后订阅的观察者只应被通知该项目已在完成事件中被消耗

预期行为:

1观察者订阅之前源的发射

--O-|------>  (source)

-----^-O-|->  (observer)
------O-|->  (source)

--^---O-|->  (observer)
2观察者订阅后源的发射

--O-|------>  (source)

-----^-O-|->  (observer)
------O-|->  (source)

--^---O-|->  (observer)
3项目消费后的订阅

-O-|------->  (source)

-^-O-|----->  (observer1 - consumes the item)

------^-|-->  (observer2 - is notified that the item has been consumed)

实现这种行为最简单、最优雅的方法是什么?

使用行为主体。这准确地描述了它的行为。

哦,似乎我误解了行为主体的工作原理。你说得对,它完美地解决了问题!谢谢