Где взять Looper нужный Handler для передачи информации с фонового потока на основной поток

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

Ответ

В Android для передачи информации с фона на основной поток используйте Handler с Looper основного потока. Основной поток уже имеет Looper, доступный через Looper.getMainLooper().

Пример:

val mainHandler = Handler(Looper.getMainLooper())

backgroundThread.execute {
    // Работа в фоне
    mainHandler.post {
        // Обновление UI в основном потоке
        textView.text = "Обновлено из фона"
    }
}

Альтернативы:

  • View.post()
  • Activity.runOnUiThread()
  • Kotlin Coroutines с Dispatchers.Main
  • RxJava с AndroidSchedulers.mainThread()

Для фоновых задач предпочтительнее использовать современные подходы: Coroutines или RxJava.