Min*_*amy 2 java reactive-programming rx-java rx-android
我想实现一个简单的场景,当观察者订阅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");
Run Code Online (Sandbox Code Playgroud)
问题是Action0.call方法永远不会被调用.
这里有什么问题吗?还是有另一种方法可以做到这一点?
每个操作员都Observable返回另一个操作员Observable- 它不会改变状态,而是创建一个新操作员.因此,您只是订阅了主题,而不是订阅在订阅时执行操作的observable.
做就是了
publishSubject
.doOnSubscribe(() -> doSmth())
.subscribe();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |