Ответ
Handler и Looper работают вместе для обработки сообщений в потоке. Looper создает бесконечный цикл, который извлекает сообщения из очереди MessageQueue и передает их Handler'у для обработки.
Основные моменты:
- У каждого потока может быть только один Looper
- Handler привязан к Looper'у потока, в котором создан
- Handler отправляет сообщения в очередь Looper'а
Пример:
// Создаем Handler в главном потоке
val handler = Handler(Looper.getMainLooper())
// Отправляем сообщение
handler.post {
// Код выполнится в главном потоке
}