完成或处置Observable/Completed时,RxJava2获取事件

Ros*_*hak 2 android rx-java rx-java2

当我订阅Completable并在操作完成后(成功或出错)隐藏它或被取消时,我需要显示进度对话框.

所以我这样做

final Completable completable = notificationRepository.markAllAsRead()
        .doOnSubscribe(d -> progressDialog.show())
        .doOnError(error -> progressDialog.dismiss())
        .doOnComplete(() -> progressDialog.dismiss())
        .doOnDispose(() -> progressDialog.dismiss());
Run Code Online (Sandbox Code Playgroud)

是否有任何优雅的方式,什么时候能得到一个回调 onError,onCompleteonDispose发生什么呢?

Ros*_*hak 15

我做了一些测试,所以

doOnDispose 当订阅者取消订阅时调用它,在完成后永远不会调用它.

doOnCompleteObservable/ Completable成功完成时调用.(错误不会发生)

doOnErrorObservable/ Completable发出错误时调用.(OnComplete未被称为).

doOnTerminateObservable/ Completable发出error或发出时被调用completes.所以它是doOnComplete+doOnError

doFinallyCompletable/ Observable信号onError或被onComplete处理时被调用.所以它是doOnDispose+ doOnError+ doOnComplete.

所以doFinally我正在寻找,谢谢你akarnokd的帮助.