我在Android应用中使用RxJava2。我有一个-lpthread
,创建后将其添加到Observable
中。 CompositeDisposable
正在从某些API检索数据,并且可能需要很长时间才能完成。
在下载时离开页面时,在Observable
中,我正在处理此onPause
,但有时仍会调用CompositeDisposable
的{{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)
);