Erreur MutableLiveData setValue dans un thread d'arrière-plan depuis une coroutine : comment corriger ?
Bonjour ! J'ai récemment commencé à apprendre Kotlin et le développement Android, et j'ai rencontré un problème en utilisant MutableLiveData avec des coroutines.
J'ai un ViewModel qui charge des données depuis le réseau à l'aide d'une coroutine. Lorsque les données arrivent, j'essaie de mettre à jour LiveData, mais j'obtiens un crash avec l'erreur :
```
Cannot invoke setValue on a background thread
```
Voici mon code :
```kotlin
class MyViewModel : ViewModel() {
private val _data = MutableLiveData
- >()
val data: LiveData
- > = _data
fun loadData() {
viewModelScope.launch {
val result = fetchDataFromApi() // suspend function
_data.setValue(result) // ça plante ici
}
}
private suspend fun fetchDataFromApi(): List
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Monorepo avec C++ : organisation du code et bonnes pratiques