Rx Observable onCompleted处理后调用

时间:2018-06-22 12:06:35

标签: android rx-java2

我在Android应用中使用RxJava2。我有一个-lpthread,创建后将其添加到Observable中。 CompositeDisposable正在从某些API检索数据,并且可能需要很长时间才能完成。

在下载时离开页面时,在Observable中,我正在处理此onPause,但有时仍会调用CompositeDisposable的{​​{1}}。

那怎么会发生?

1 个答案:

答案 0 :(得分:1)

如文档中所述,onTerminateDetach取消了对上游生产者和下游生产者的引用。

例如

mDisposable.add(
            apiClient.apiCallSomeAPI()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .concatMap(this::responseObservable)           
                    .toList()
                    .onTerminateDetach() // this is important, exactly before subscribe
                    .doOnSuccess(this::realmBulkOperation)
                    .subscribe(this::handleResult, this::handleError)
    );