繁体   English   中英

RxJava:永远不会调用发布主题doOnSubscribe

[英]RxJava: Publish subject doOnSubscribe never gets called

我想实现一个简单的场景,当观察者订阅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");

问题在于Action0.call方法永远不会被调用。

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

Observable上的每个运算符都会返回另一个Observable它不会更改状态,而是在创建一个新的Observable 因此,您只订阅了主题,而不是订阅在订阅时执行操作的可观察对象。

做就是了

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM