为什么PublishSubject不会发出第一个元素

时间:2017-09-11 15:34:09

标签: android rx-java

我尝试使用rx和PublishSubject。所以我创建了对象:

PublishSubject<MyEvent> events = PublishSubject.create();

在我的服务中,我将MyEvent放入其中。

events.onNext(new MyEvent);

所以有时候我没有收到第一个活动,但是我收到了第二个活动。 有时我收到所有活动。谁能解释一下,这可能有什么问题?

1 个答案:

答案 0 :(得分:5)

PublishSubject向所有“当前已订阅”的订阅者发出该事件。它不会向将来订阅的订阅者发出。

BehaviorSubject会在订阅时发出最后一个已知值,然后表现得像PublishSubject。我的猜测是,这是你期望的行为。