RxJava:Publish subject doOnSubscribe从未被调用

RxJava:Publish subject doOnSubscribe从未被调用,java,rx-java,reactive-programming,rx-android,Java,Rx Java,Reactive Programming,Rx Android,我想实现一个简单的场景,当一个观察者订阅一个PublishSubject时,会发生一个特定的动作 我是这样实现的: PublishSubject<String>publishSubject=PublishSubject.create(); publishSubject.doOnSubscribe(new Action0() { @Override public void c

我想实现一个简单的场景,当一个观察者订阅一个PublishSubject时,会发生一个特定的动作

我是这样实现的:

PublishSubject<String>publishSubject=PublishSubject.create();
                publishSubject.doOnSubscribe(new Action0() {
                    @Override
                    public void call() {
                        //do something
                    }
                });

                publishSubject.subscribe(new Observer<String>() {
                @Override
                public void onCompleted() {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onNext(String s) {

                }
            });
                publishSubject.onNext("xyz");
PublishSubjectpublishSubject=PublishSubject.create();
publishSubject.doOnSubscribe(新操作0(){
@凌驾
公开作废通知(){
//做点什么
}
});
publishSubject.subscribe(新观察者(){
@凌驾
未完成的公共无效(){
}
@凌驾
公共无效申报人(可丢弃的e){
}
@凌驾
public void onNext(字符串s){
}
});
publishSubject.onNext(“xyz”);
问题是Action0.call方法从未被调用


这里有什么问题吗?或者有其他方法可以做到这一点吗?

可观察的
上的每个操作符返回另一个
可观察的
-它没有改变状态,而是创建一个新的状态。因此,您没有订阅在订阅时间执行操作的可观察对象,而是订阅了主题

照办

publishSubject
    .doOnSubscribe(() -> doSmth())
    .subscribe();