Middle
42
questionbank

Как можно получить сообщения на основном потоке с помощью Handler и Looper?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech
  1. Создать Handler: Связать его с Looper основного потока.
  2. Передать Runnable или Message: Отправить их через Handler для выполнения на связанном потоке (в данном случае - основном).
kotlin
  • Looper.getMainLooper() получает Looper, связанный с основным потоком.
  • Handler(Looper.getMainLooper()) создает Handler, который будет обрабатывать сообщения, отправленные ему, на основном потоке.
  • post(Runnable) ставит Runnable в очередь сообщений Looper для выполнения.
  • sendMessage(Message) отправляет сообщение в очередь сообщений Looper.

Альтернатива: Анонимный класс Handler c handleMessage

Можно переопределить метод handleMessage в анонимном классе Handler для обработки сообщений.

kotlin

В этом случае, при получении сообщения, будет вызван метод handleMessage на основном потоке.