所以我很确定我在这里有点茫然。
预期的行为是:
从API获取数据->将其保存在本地数据库中->从 本地数据库并显示
首先在我的mLiveData = viewModel.fetchAllCategories(getString(R.string.lang_code))
mCategoryLiveData!!.observe(this, Observer<Array<Category>> { it ->
if (it != null) {
this@CategoryListFragment.allCategories = SparseArray(it.size)
for (category in it) {
allCategories[category.id] = category
}
displayedCategory = allCategories[1]
this@CategoryListFragment.mLoadingCircle.visibility = View.GONE
this@CategoryListFragment.displayCategoryChildren()
}
})
中,我调用一个执行此操作的函数:
fun getAllCategoriesFromAPI(language: String): Flowable<Array<Category>> {
return service.getAllCategories(language)
.doOnNext {
Log.e("Repository", "Fetched ${it.size} Categories from the API ")
storeCategoriesInDb(it)
}
}
fetchAllCategories调用ViewModel中的一个函数,该函数调用该函数:
displayCategoryChildren()
但是函数ViewModel
在onNext完成之前会触发,这会导致错误,因为应该从数据库获取应用程序的数据尚未保存在那里。
如果有任何相关意义,我也可以在{{1}}
中发布功能