Как связаны между собой Handler и Looper

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

Ответ

Handler и Looper работают вместе для обработки сообщений в потоке. Looper создает бесконечный цикл, который извлекает сообщения из очереди MessageQueue и передает их Handler'у для обработки.

Основные моменты:

  • У каждого потока может быть только один Looper
  • Handler привязан к Looper'у потока, в котором создан
  • Handler отправляет сообщения в очередь Looper'а

Пример:

// Создаем Handler в главном потоке
val handler = Handler(Looper.getMainLooper())

// Отправляем сообщение
handler.post {
    // Код выполнится в главном потоке
}