我需要在订阅 Completable
时显示进度对话框,并在操作完成(成功或出错)或取消后隐藏它。
我也是
final Completable completable = notificationRepository.markAllAsRead()
.doOnSubscribe(d -> progressDialog.show())
.doOnError(error -> progressDialog.dismiss())
.doOnComplete(() -> progressDialog.dismiss())
.doOnDispose(() -> progressDialog.dismiss());
有什么优雅的方法可以在
onError
、onComplete
或 onDispose
发生了吗?
最佳答案
我做了一些测试,所以
doOnDispose
在订阅者取消订阅时调用,完成后永远不会调用。
doOnComplete
在 Observable
/Completable
成功完成时调用。 (错误不会发生)
doOnError
在 Observable
/Completable
发出错误时被调用。 (OnComplete
未被调用)。
doOnTerminate
在Observable
/Completable
发出error
或completes
时被调用.所以它是 doOnComplete
+ doOnError
doFinally
在 Completable
/Observable
信号 onError
或 onComplete
或被处置。所以它是 doOnDispose
+ doOnError
+doOnComplete
。
doFinally
就是我要找的东西,谢谢 akarnokd 的帮助。
关于android - RxJava2 在 Observable/Completed 完成或处置时获取事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43118182/