Расскажите про Handler

Handler с английского переводится как “обработчик”. Этот класс используется вместе с MessageQueue и Looper.

Handler используется для работы с MessageQueue, потому что давать программистам доступ к самой очереди сообщений было бы небезопасно. Так что как связующее звено между программистом и очередью сообщений используется хендлер.

Так же хендлер позволяет добавлять сообщения (объекты Message). Ну и собственно он может обрабатывать сообщения, от чего и пошло его название

Вот список важных методов Handler:

  1. post()/postDelayed(). Позволяет добавлять объекты Runnable в очередь сообщений
  2. obtainMessage(). Позволяет создавать свои сообщения (на самом деле это будет не создание новых сообщений, а переиспользование старых, потому что каждый раз выделять память на новое сообщение было бы нерационально, учитывая сколько сообщений проходит через очередь в секунду).
  3. sendMessage()/sendEmptyMessage()/sendMessageDelayed() и тд. Позволяет добавлять сообщения (объекты Message) в очередь сообщений.
  4. handleMessage(). Данный метод позволяет обрабатывать сообщения, от чего и пошло его название.

Тем не менее, данный метод не реализован в стандартном Handler, можно либо передать объект Handler.Callback, чтобы обрабатывать сообщения, либо же создать своего наследника Handler с реализованным методом handleMessage()

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *