来自协程后台线程的 MutableLiveData setValue 错误:如何修复?
你好!我最近刚开始学习 Kotlin 和 Android 开发,在使用 MutableLiveData 配合协程时遇到了一个问题。
我有一个 ViewModel,它使用协程从网络加载数据。当数据到达时,我尝试更新 LiveData,但遇到了崩溃,错误信息如下:
```
Cannot invoke setValue on a background thread
```
这是我的代码:
```kotlin
class MyViewModel : ViewModel() {
private val _data = MutableLiveData
- >()
val data: LiveData
- > = _data
fun loadData() {
viewModelScope.launch {
val result = fetchDataFromApi() // suspend 函数
_data.setValue(result) // 这里崩溃
}
}
private suspend fun fetchDataFromApi(): List