خطأ MutableLiveData setValue في الخلفية من coroutine: كيفية الإصلاح؟
مرحبًا! بدأت مؤخرًا في تعلم Kotlin وتطوير Android، وواجهت مشكلة عند استخدام MutableLiveData مع coroutines.
لدي ViewModel تقوم بتحميل البيانات من الشبكة باستخدام coroutine. عندما تصل البيانات، أحاول تحديث 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