Какие знаешь средства Android для переключения с фонового потока на главный

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

Ответ

В Android для переключения с фонового потока на главный (UI) поток можно использовать:

  1. Handler – отправляет сообщения или Runnable в очередь главного потока:
Handler(Looper.getMainLooper()).post {
    // Обновляем UI
}
  1. View.post() – удобный способ через любой View:
myView.post { updateUI() }
  1. Activity.runOnUiThread():
activity.runOnUiThread { 
    // Код для UI
}
  1. Корутины с Dispatchers.Main (Kotlin):
CoroutineScope(Dispatchers.IO).launch {
    val data = fetchData()
    withContext(Dispatchers.Main) {
        showData(data) // UI-операция
    }
}
  1. LiveData – автоматически обновляет UI при изменении данных.

Важно: никогда не обновляйте UI напрямую из фонового потока – это вызовет CalledFromWrongThreadException.