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.