Как создать HandlerThread

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

Ответ

HandlerThread — это удобный способ создать поток с Looper'ом, который можно использовать для выполнения задач в фоне.

  1. Создаем экземпляр:
val handlerThread = HandlerThread("MyHandlerThread")
handlerThread.start() // запускаем поток
  1. Получаем Looper и создаем Handler:
val handler = Handler(handlerThread.looper)
  1. Отправляем задачи:
handler.post { 
    // код выполнится в HandlerThread 
}
  1. Не забываем освободить ресурсы:
handlerThread.quit() // или quitSafely() для завершения

Нюансы:

  • quitSafely() безопаснее, так как завершает выполнение текущих задач.
  • Нельзя использовать Looper после вызова quit().
  • Подходит для фоновых операций, не требующих UI-потока.