Android 未调用CoroutineLiveData Builder存储库

Android 未调用CoroutineLiveData Builder存储库,android,kotlin,android-livedata,coroutine,mutablelivedata,Android,Kotlin,Android Livedata,Coroutine,Mutablelivedata,我试图使用新的liveData builder来检索我的数据,然后将其转换为视图模型。但是,我的存储库代码没有被调用(至少我在使用调试器时看不到它被触发)。我不应该使用两个liveData{…}builder吗?(一个在我的存储库中,一个在我的视图模型中) class MyRepository@injectconstructor():Repository{ 覆盖getMyContentLiveData(参数:MyParams):LiveData= 实时数据{ val myContent=netw

我试图使用新的liveData builder来检索我的数据,然后将其转换为视图模型。但是,我的存储库代码没有被调用(至少我在使用调试器时看不到它被触发)。我不应该使用两个
liveData{…}
builder吗?(一个在我的存储库中,一个在我的视图模型中)

class MyRepository@injectconstructor():Repository{
覆盖getMyContentLiveData(参数:MyParams):LiveData=
实时数据{
val myContent=networkRequest(params)//使用params发送网络请求
发射(myContent)
}
}
类MyViewModel@Inject构造函数(
私有val存储库:MyRepository
):ViewModel(){
val viewModelList=liveData(Dispatchers.IO){
val contentLiveData=repository.getContentLiveData(keyParams)
val viewModelLiveData=contentToViewModels(contentLiveData)
发射(viewModelLiveData)
}
私有趣味contentToViewModels(contentLiveData:LiveData):LiveData{
返回Transformations.map(contentLiveData){content->
//执行一些转换并返回列表
}
}
}
类MyFragment:Fragment(){
@注入
lateinit var viewModelFactory:ViewModelProvider.Factory
val myViewModel:myViewModel by lazy{
ViewModelProviders.of(这是viewModelFactory.get(MyViewModel::class.java)
}
lateinit变量参数:MyParams
重写转速表(上下文:上下文){
AndroidSupportInjection.注射(此)
super.onAttach(上下文)
myViewModel.params=params
myViewModel.viewModelList.observe(这个,观察者{
onListChanged(it)
})
}

您可以尝试使用
emitSource

val viewModelList = liveData(Dispatchers.IO) {
    emitSource(
        repository.getContentLiveData(keyParams).map {
            contentToViewModels(it)
        }
}

您似乎正在设置一个
LiveData
来发出另一个
LiveData
。这似乎很奇怪。这应该是
val viewmodelist=contentToViewModels(repository.getContentLiveData(keyParams))
?我会试试看。@commonware不起作用。存储库仍然被完全跳过。您可能还想看看
emitSource
东西-它似乎是为您制作的:)是的,这是丢失的部分。谢谢!
val viewModelList = liveData(Dispatchers.IO) {
    emitSource(
        repository.getContentLiveData(keyParams).map {
            contentToViewModels(it)
        }
}