清除:Observable调用onError()后会通知onComplete()吗?

时间:2018-04-16 01:25:58

标签: rx-java reactivex

我需要在流完成时释放资源,无论是onError还是onComplete。从ReactiveX The Observable Contract读取通知它说

  

Observable可以发出零个或多个OnNext通知   表示单个发射项目,然后可以遵循这些项目   OnCompleted或OnError的发射通知   通知,但不是两者。

我是否正确将清除调用放在onError和onComplete通知中?像这样:

.subscribe(
    //onNext
    completable -> Log.d(LOG_TAG,"done"),
    //onError
    throwable -> {
      Log.d(LOG_TAG,"error");
      serviceCleanup();
    },
    //onComplete
    this::serviceCleanup
);

例如。只是为了将来的文档目的,所以我可以向其他人和我自己解释。

1 个答案:

答案 0 :(得分:1)

您最好使用doFinallydoAfterTerminate来清理资源。