如何防止 "onComplete" 上的 Rxjava 主题?

How to prevent Rxjava Subject on "onComplete"?

我需要一个忽略 onComplete() 的 RxJava 主题,所以即使我使用 RxRelay,它仍然调用 onComplete :(

private val mDisposables = CompositeDisposable()
private val mRelay: BehaviorRelay<Boolean> = BehaviorRelay.createDefault(true)
....
mDisposables += mRelay
        .observeOn(io)
        .throttleLatest(5, SECONDS)
        .flatMap { ... }
        .zipWith(...)
        .switchMap {...}
        .subscribeOn(io)
        .subscribeWith(object : DisposableObserver<UiData>() {
          override fun onComplete() {
            Timber.d("COMPLETED")
          }

          override fun onNext(it: UiData) {
            Timber.d(it.toString())
          }

          override fun onError(e: Throwable) {
            Timber.e(e)
          }
        })
  }

为什么总是onComplete打电话?

可能是您对 .zipWith 的使用将流限制为最短的参与者,无论其他流是否结束。

我意识到 .zipWith() 中断了流。最后我用 .flatMap() 替换了 .zipWith() .

感谢@Kiskae