Led экраны

05.09.2017

Конструирование подходящего объекта сообщения

Как было показано ранее, при конструировании экземпляра DeferWorkHandler уже известно, как привязаться к главной очереди, поскольку этот класс унаследовал соответствующее свойство от базового класса Handler. Базовый класс Handler предоставляет набор методов для отправки сообщений в очередь с целью последующей обработки.

Двумя примерами методов отправки могут служить sendMessage() и sendMessageDelayed(). Метод sendMessageDelayed(), который используется в примере, позволяет поместить сообщение в главную очередь с заданным значением времени задержки. В противоположность ему, метод sendMessage() помещает сообщение в очередь для немедленной обработки. Возможно вас заинтересуют led экраны.

Для вызова метода sendMessage() или sendMessageDelayed() необходим экземпляр объекта Message. Лучше всего запросить его у обработчика, т.к. при возврате объекта Message обработчик скрывает себя внутри него. Это дает возможность главному потоку на основе одного лишь сообщения выяснить, какой обработчик должен быть вызван. В листинге 17.4 сообщение получается с помощью следующего кода: Message m = this.obtainMessage();

Переменная this ссылается на экземпляр обработчика. Этот метод не создает новое сообщение, а извлекает его из глобального пула сообщений. Как только это сообщение будет обработано, оно возвратится обратно в пул. Метод obtainMessage() имеет вариации, перечисленные в листинге 17.5.








Нас выбрали

partners3