Ответ
Handler позволяет отправлять и обрабатывать сообщения (Message) и Runnable-объекты в потоке, к которому он привязан (обычно UI-поток). Основные сценарии:
-
Обновление UI из фонового потока
Например, после загрузки данных в AsyncTask или другом потоке. -
Отложенное выполнение кода
Можно запланировать выполнение кода через определённое время.
Пример:
val handler = Handler(Looper.getMainLooper())
handler.postDelayed({
textView.text = "Обновлено через 2 секунды"
}, 2000)
- Очередь сообщений
Позволяет управлять очередностью выполнения задач.
Handler связан с Looper, который обрабатывает очередь сообщений потока.