Ответ
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().