首页 > 解决方案 > Room RxJava - onNext() 在 FlowableSubscriber 中调用一次

问题描述

以下是我的 FlowableSubscriber 代码

fun getFlowableSubscriber(): FlowableSubscriber<List<Incoming>>{
    return object : FlowableSubscriber<List<Incoming>> {
        override fun onComplete() {
            log("onComplete")
        }

        override fun onSubscribe(subscription: Subscription) {
            log("onSubscribe")
            this@IncomingFragment.subscription = subscription
            subscription.request(Long.MAX_VALUE)

        }

        override fun onNext(items: List<Incoming>) {
            log("onNext item size is ${items.size}")      
        }

        override fun onError(t: Throwable?) {
            log("onError $t")

        }
    }
}

还有我的活动生命周期方法:

 override fun onResume() { 
        if (::subscription.isInitialized){
            subscription.request(Long.MAX_VALUE) 
        }
        super.onResume()
    }


    override fun onStop() { 
        subscription.cancel()
        super.onStop()
    }

问题是onNext()只运行一次,我希望它每次onResume()被调用时触发。但subscription.request()似乎只工作一次。我正在将它与 Room 一起使用。

标签: kotlinrx-javarx-java2android-room

解决方案


推荐阅读