📅  最后修改于: 2023-12-03 15:19:53.664000             🧑  作者: Mango
PublishSubject
是 RxJava 中的一个特殊的 Subject
,它无论何时都会把它接收到的所有事件发送给所有已订阅的观察者。
PublishSubject<String> subject = PublishSubject.create();
subject.subscribe(new Observer<String>() {
@Override
public void onNext(String s) {
System.out.println("onNext: " + s);
}
@Override
public void onError(Throwable e) {
System.out.println("onError: " + e.getMessage());
}
@Override
public void onComplete() {
System.out.println("onComplete");
}
});
subject.onNext("Hello");
subject.onNext("World");
onNext: Hello
onNext: World
PublishSubject
可以用于多个观察者需要同时接收事件的场景,例如实现一个简单的事件总线。
PublishSubject
是一个非常常用的 Subject
,它可以让所有订阅了它的观察者都能同时接收到它发送的事件。应用场景广泛,可以用于事件总线、UI 线程和 IO 线程之间的通信以及其他多个观察者需要同时接收事件的场景。