Sobes.tech
Junior — Middle

Jakie są ograniczenia dotyczące używania wątków dla Dispatchers.Main w ramach Coroutines?

sobes.tech AI

Odpowiedź od AI

Dispatchers.Main w Kotlin Coroutines jest przeznaczony do uruchamiania korutyn na głównym (UI) wątku Androida.

Ograniczenia:

  • Uruchamianie tylko na głównym wątku — nie używaj Dispatchers.Main do operacji w tle lub długotrwałych, aby nie blokować UI.
  • Dostępność zależy od platformy — na Androidzie Dispatchers.Main działa z Looperem głównego wątku, w innych środowiskach może wymagać dodatkowej konfiguracji.
  • Nie nadaje się do zadań intensywnych CPU lub IO — dla nich lepiej używać Dispatchers.IO lub Dispatchers.Default.

Przykład użycia:

CoroutineScope(Dispatchers.Main).launch {
    // Aktualizacja UI
    textView.text = "Ładowanie..."
    val data = withContext(Dispatchers.IO) {
        // Długa operacja
        fetchData()
    }
    textView.text = data
}