Что такое Looper

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

Ответ

Looper — это механизм в Android, который позволяет обрабатывать сообщения (Message) в потоке. Он работает в связке с Handler и MessageQueue.

Основные моменты:

  • MessageQueue — очередь сообщений, где хранятся задачи.
  • Looper — бесконечный цикл, который извлекает сообщения из очереди и передает их Handler для обработки.
  • Главный поток (UI Thread) уже имеет Looper, поэтому можно создавать Handler без явной инициализации.

Пример использования в фоновом потоке:

Thread {
    Looper.prepare() // Инициализация Looper для текущего потока
    val handler = Handler(Looper.myLooper()!!) {
        // Обработка сообщения
        true
    }
    Looper.loop() // Запуск цикла
}.start()

Без Looper поток завершится после выполнения кода, а с ним — продолжает работать, пока не будет вызван quit().