Kotlin RxJava2可流动出版物主题不';无法在下一页上发送数据
我知道在stackoverflow上我们有很多类似的问题,但我真的不知道我做错了什么 我有列表对象Kotlin RxJava2可流动出版物主题不';无法在下一页上发送数据,kotlin,rx-java2,Kotlin,Rx Java2,我知道在stackoverflow上我们有很多类似的问题,但我真的不知道我做错了什么 我有列表对象 val applicationList: MutableList<Application> = generateApplications() 这是我的getFlowable方法: override fun getApplications(): Flowable<List<Application>> { return applicationsFlowab
val applicationList: MutableList<Application> = generateApplications()
这是我的getFlowable方法:
override fun getApplications(): Flowable<List<Application>> {
return applicationsFlowable
}
但onNext方法从不调用。
如果我使用这个代码,它工作得很完美
override fun getApplications(): Flowable<List<Application>> {
return Flowable.just(applicationList)
}
override fun getApplications():可流动{
返回可流动的.just(应用程序列表)
}
但这并不是我想要的。因为当我创建新的应用程序对象时,我希望向我的applicationsFlowable发出新列表
override fun createApplication(name: String): Single<Application> {
val application = generateApplication(name)
applicationsPublishSubject.onNext(applicationList)
return Single.just(application)
}
重写应用程序(名称:字符串):单个{
val应用程序=生成应用程序(名称)
ApplicationPublishSubject.onNext(应用程序列表)
返回单个。仅限(应用程序)
}
我做错了什么 这是我的错误。只需使用BehaviorSubject而不是PublishSubject。您发送事件的时间可能比流的订阅者早。在调用
onNext
之前,请检查applicationsPublishSubject.hasObservators()
,查看是否存在这种情况。
compositeDisposable.add(dataSource.getApplications()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
getViewState().setApplicationList(it)
}, {
Log.e("ApplicationsPresenter", it.toString())
}))
override fun getApplications(): Flowable<List<Application>> {
return Flowable.just(applicationList)
}
override fun createApplication(name: String): Single<Application> {
val application = generateApplication(name)
applicationsPublishSubject.onNext(applicationList)
return Single.just(application)
}