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

RxJava2 get event when Observable/Completed is completed or disposed

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

我也是

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

有什么优雅的方法可以在 onErroronCompleteonDispose 发生了吗?

我做了一些测试,所以

doOnDispose订阅者取消订阅时调用,完成后不再调用。

doOnCompleteObservable/Completable 成功完成时调用。 (没有发生错误)

doOnErrorObservable/Completable 发出错误时被调用。 (OnComplete 未调用)。

doOnTerminateObservable/Completable 发出 errorcompletes 时调用。所以它是 doOnComplete + doOnError

doFinallyCompletable/Observable 发出 onErroronComplete 信号或被处置时调用。所以它是 doOnDispose + doOnError +doOnComplete.

所以 doFinally 就是我要找的,谢谢 akarnokd 的帮助。