Junior — Middle
Jaká jsou omezení při používání vláken pro Dispatchers.Main v rámci Coroutines?
sobes.tech AI
Odpověď od AI
Dispatchers.Main v Kotlin Coroutines je určeno k spuštění coroutin na hlavním (UI) vlákně Androidu.
Omezení:
- Spouštět pouze na hlavním vlákně — Dispatchers.Main nesmíte používat pro pozadí nebo dlouhotrvající operace, aby nedošlo k zablokování UI.
- Dostupnost závisí na platformě — na Androidu funguje Dispatchers.Main s Looperem hlavního vlákna, v jiných prostředích může být potřeba další konfigurace.
- Nevhodné pro CPU- nebo IO-intenzivní úkoly — pro ty je lepší použít Dispatchers.IO nebo Dispatchers.Default.
Příklad použití:
CoroutineScope(Dispatchers.Main).launch {
// Aktualizace UI
textView.text = "Načítání..."
val data = withContext(Dispatchers.IO) {
// Dlouhá operace
fetchData()
}
textView.text = data
}