Avatar ·

Error MutableLiveData setValue en hilo de fondo desde corrutina: ¿cómo solucionarlo?

¡Hola! Recientemente comencé a estudiar Kotlin y desarrollo Android, y me encontré con un problema al usar MutableLiveData junto con corrutinas. Tengo un ViewModel que carga datos de la red usando una corrutina. Cuando llegan los datos, intento actualizar el LiveData, pero obtengo un crash con el error: ``` Cannot invoke setValue on a background thread ``` Aquí está mi código: ```kotlin class MyViewModel : ViewModel() { private val _data = MutableLiveData>() val data: LiveData> = _data fun loadData() { viewModelScope.launch { val result = fetchDataFromApi() // suspend function _data.setValue(result) // aquí falla } } private suspend fun fetchDataFromApi(): List { delay(2000) // simulación de carga return listOf("item1", "item2", "item3") } } ``` He leído que MutableLiveData.setValue() solo se puede llamar desde el hilo principal. Pero la corrutina se lanza a través de