以下是代码
private fun setUpDistrictSpinner() {
commonRepo.getAllDistricts()
.observeOn(AndroidSchedulers.mainThread())
.flatMap { list -> Flowable.fromIterable(list) }
.map { district ->
districtNameList.add(district.district_name)
district
}.subscribe(object:Subscriber<District>{
override fun onComplete() {
labSelectionInterface.loadDistricts(districtNameList)
Timber.d("district List loaded total " + districtList.size)
}
override fun onError(t: Throwable?) {
t!!.printStackTrace()
}
override fun onNext(t: District) {
districtList.add(t)
}
override fun onSubscribe(s: Subscription) {
s.request(Long.MAX_VALUE)
}
})
}
在加载区域列表到下拉框中时,onNext方法会被触发,但是onComplete不会被触发,也没有错误信息。我在使用Room数据库和Kotlin。以下是获取Flowable的代码:
fun getAllDistricts(): Flowable<List<District>> {
Timber.d("District list accessed")
return appDatabase.districtDao().getAllDistricts()
.subscribeOn(Schedulers.io())
}