Ответ
Работал с Handler для выполнения задач в UI потоке после задержки или периодически. Основные сценарии: обновление интерфейса из фонового потока, отложенный запуск операций (postDelayed), обработка сообщений через Message и Looper.
Пример:
val handler = Handler(Looper.getMainLooper())
handler.postDelayed({
textView.text = "Updated after 2 seconds"
}, 2000)
Нюансы:
- Утечки памяти (использую
WeakReferenceдляActivity/Fragment). - Для периодических задач предпочитаю
CoroutineсlifecycleScope. - В новых проектах заменяю на
view.post{}или корутины, но понимаю низкоуровневую работу (Looper,MessageQueue).