Какой основной поток выполнения у Android приложения

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

Ответ

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

Ключевые особенности:

  • Все компоненты (Activity, Fragment, View) работают в Main Thread.
  • Долгие операции (сеть, БД, вычисления) нельзя выполнять в Main Thread — это приведёт к ANR (Application Not Responding).
  • Для фоновых задач используйте Coroutines, RxJava, AsyncTask (устарел) или Thread + Handler.

Пример с Coroutines:

lifecycleScope.launch {  
    val data = withContext(Dispatchers.IO) { fetchData() } // Фоновая задача  
    updateUI(data) // Возврат в Main Thread  
}  

⚠️ Нарушение работы Main Thread — частая причина падений приложений!