Какой опыт работы с Handler

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

Ответ

Работал с 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).