Почему и когда я должен использовать обработчик? - PullRequest
0 голосов
/ 20 мая 2018

Недавно я видел пример приложения секундомера, где разработчик использовал объект-обработчик для обновления времени, отображаемого на TextView.Почему бы не использовать обычный цикл, который продолжает обновлять текст вместо использования обработчика?

1 Ответ

0 голосов
/ 20 мая 2018

Каждое приложение имеет собственный специальный поток, который запускает объекты пользовательского интерфейса, такие как объекты View;этот поток называется потоком пользовательского интерфейса .

Учитывая ваш пример с секундомером, если вы просто добавите цикл в свою деятельность и продолжите время, то он заблокирует ваш поток пользовательского интерфейса и ваше приложение может перестать отвечать на запросы 1010 *.Чтобы преодолеть эту проблему и не блокировать поток UI / Main, мы используем отдельные потоки для выполнения таких текущих / длинных задач.

Итак, он создает обработчик , который будет выполнять длинныевыполнение задачи и отправляет обновление в поток пользовательского интерфейса для обновления textView при необходимости.

...