Junior — Middle
Kokios yra apribojimai naudojant srautus Dispatchers.Main Coroutines kontekste?
sobes.tech AI
Atsakymas iš AI
Kotlin Coroutines Dispatchers.Main skirtas pradėti korutinas Android pagrindiniame (UI) sraute.
Apribojimai:
- Vykdyti tik pagrindiniame sraute — nenaudokite Dispatchers.Main foninėms ar ilgalaikėms operacijoms, kad neužblokuotumėte UI.
- Prieinamumas priklauso nuo platformos — Android Dispatchers.Main veikia su pagrindinio srauto Looperiu, kitose aplinkose gali reikėti papildomos konfigūracijos.
- Netinka CPU ar IO intensyvioms užduotims — joms geriau naudoti Dispatchers.IO arba Dispatchers.Default.
Naudojimo pavyzdys:
CoroutineScope(Dispatchers.Main).launch {
// UI atnaujinimas
textView.text = "Įkeliama..."
val data = withContext(Dispatchers.IO) {
// Ilgalaikė operacija
fetchData()
}
textView.text = data
}