Sobes.tech
Junior — Middle

Ce este managerul de sarcini folosit în ViewModelScope atunci când lucrezi cu corutine?

sobes.tech AI

Răspuns de la AI

Dispatcher în ViewModelScope controlează pe ce thread sau pool de thread-uri sunt executate corutinele. În Android, acest lucru este important pentru a separa munca între thread-ul principal (UI) și thread-urile de fundal.

De exemplu, Dispatchers.Main este folosit pentru actualizarea UI-ului, iar Dispatchers.IO pentru operațiuni de intrare/ieșire.

ViewModelScope anulează automat corutinele la distrugerea ViewModel-ului, prevenind scurgerile de memorie.

Exemplu de utilizare:

viewModelScope.launch(Dispatchers.IO) {
    val data = repository.loadData() // operație de fundal
    withContext(Dispatchers.Main) {
        _liveData.value = data // actualizare UI
    }
}