Зачем делать операции на нескольких потоках в Android

«Зачем делать операции на нескольких потоках в Android» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Операции на нескольких потоках в Android необходимы, чтобы избежать блокировки UI (главного потока). Долгие задачи (сеть, БД, вычисления) должны выполняться в фоне, иначе приложение будет "фризить".

Основные подходы:

  • Kotlin Coroutines – легковесные потоки с удобным синтаксисом.
  • RxJava – реактивное программирование.
  • Thread/Executor – классические Java-потоки.

Пример с Coroutines:

lifecycleScope.launch { // UI-поток  
    val result = withContext(Dispatchers.IO) { // фоновый поток  
        fetchDataFromNetwork() // долгая операция  
    }  
    updateUI(result) // возвращаемся в UI-поток  
}  

⚠️ Важно: обновлять UI можно только из главного потока!