当 Observable/Completed 完成或处置时,RxJava2 获取事件 [英] RxJava2 get event when Observable/Completed is completed or disposed
问题描述
我需要在订阅 Completable
时显示进度对话框,并在操作完成(成功或出错)或取消后隐藏它.
I need to show a progress dialog when I subscribe to a Completable
and hide it after the operation is completed(successfully or with an error) or is canceled.
我也是这样
final Completable completable = notificationRepository.markAllAsRead()
.doOnSubscribe(d -> progressDialog.show())
.doOnError(error -> progressDialog.dismiss())
.doOnComplete(() -> progressDialog.dismiss())
.doOnDispose(() -> progressDialog.dismiss());
有没有什么优雅的方法来获得单个回调onError
、onComplete
或 onDispose
发生了吗?
Is there any elegant way to get single callback when
onError
, onComplete
or onDispose
happens?
推荐答案
我已经做了一些测试,所以
I have done some tests, so
doOnDispose
在订阅者取消订阅时调用,完成后不再调用.
doOnDispose
is called when the subscriber cancels the subscription, it is never called after completion.
doOnComplete
在 Observable
/Completable
成功完成时被调用.(错误不会发生)
doOnComplete
is called when the Observable
/Completable
completes successfully. (Error doesn't happen)
doOnError
在 Observable
/Completable
发出错误时被调用.(OnComplete
未被调用).
doOnError
is called when Observable
/Completable
emits an error. (OnComplete
is not called).
doOnTerminate
在 Observable
/Completable
发出 error
或 completes
时被调用.所以它是 doOnComplete
+ doOnError
doOnTerminate
is called when Observable
/Completable
emits an error
or completes
. So it's doOnComplete
+ doOnError
doFinally
在 Completable
/Observable
发出信号 onError
或 onComplete
或被处置.所以它是 doOnDispose
+ doOnError
+doOnComplete
.
doFinally
is called when Completable
/Observable
signals onError
or onComplete
or gets disposed. So it is doOnDispose
+ doOnError
+doOnComplete
.
所以 doFinally
就是我要找的,谢谢 akarnokd 的帮助.
So doFinally
is what I was looking for, Thank you akarnokd for help.
这篇关于当 Observable/Completed 完成或处置时,RxJava2 获取事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!