Sobes.tech
Junior — Middle

Kuidas määratleda oma kontekst ViewModelScope Androidis?

sobes.tech AI

Vastus AI-lt

Androidis kasutab ViewModelScope vaikimisi konteksti koos Dispatchers.Main dispatcher-iga, mis on mugav UI-ga töötamiseks. Oma konteksti määramiseks ViewModelScope-ile saate luua oma CoroutineScope vajaliku CoroutineContext-iga ja kasutada seda standardi asemel.

Näiteks võite luua laienduse ViewModel-ile, mis kasutab kohandatud konteksti:

class CustomViewModel : ViewModel() {
    private val customScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)

    fun doWork() {
        customScope.launch {
            // Siin kood töötab Dispatchers.IO-s
        }
    }

    override fun onCleared() {
        super.onCleared()
        customScope.cancel() // Korutinate tühistamine ViewModel-i hävitamisel
    }
}

Asendage viewModelScope.launch {} customScope.launch {}-ga soovitud kontekstiga.

Kui soovite muuta konteksti viewModelScope sees, saate kasutada withContext:

viewModelScope.launch {
    withContext(Dispatchers.IO) {
        // Töö IO-ga
    }
}

Täieliku kontrolli jaoks on parem luua oma CoroutineScope ViewModelis.