Adh*_*aya 5 rx-java rx-android rx-java2
在下面的代码中,在完成?之后,如何以及在哪里放置unSubscribe以Observable明确取消订阅onComplete。
getObservable()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {
doSomething();
}
@Override
public void onError(Throwable e) {
thereIsError();
}
@Override
public void onNext(Boolean status) {
updateView();
}
});
Run Code Online (Sandbox Code Playgroud)
您可以保存方法Disposable返回subscribe并在onCompleted回调中使用它
Disposable d =
getObservable()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {
doSomething();
d.dispose();
}
@Override
public void onError(Throwable e) {
thereIsError();
}
@Override
public void onNext(Boolean status) {
updateView();
}
});
Run Code Online (Sandbox Code Playgroud)
disposables.add(sampleObservable()
// Run on a background thread
.subscribeOn(Schedulers.io())
// Be notified on the main thread
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableObserver<String>() {
@Override
public void onComplete() {
// Do some work for completion
}
@Override
public void onError(Throwable e) {
// Do some work for error
}
@Override
public void onNext(String value) {
// Do some work for next
}
}));
Run Code Online (Sandbox Code Playgroud)
并清除和取消订阅
@Override
protected void onDestroy() {
super.onDestroy();
disposables.clear(); // do not send event after activity has been destroyed
disposables.dispose();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7326 次 |
| 最近记录: |