Sobes.tech
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
}