Хэндлер всегда связан с лупером, который в свою очередь связан с каким-либо потоком. При создании хэндлера в конструктор можно передать объект
Looper. Если используется дефолтный конструктор, то хэндлер создается на текущем потоке. Если с потоком не связан лупер, то при создании хэндлера бросается RuntimeException.Методы
post*() используются для шедулинга объектов Runnable, которые выполняются на связанном с хэндлером потоке. Объекты Runnable добавляются в очередь сообщений. Метод post(action: Runnable) добавляет объект action в конец очереди без специального условия по времени, т.е. action будет запущен, как только это будет возможно. Методы postAtTime() и postDelayed() принимают параметром конфигурацию времени (точное время и задержку относительно текущего времени соответственно). На скриншоте пример шедулинга действия на UI потоке.Класс
Handler имеет методы send*(), аналогичные методам post*(), но для шедулинга объектов Message, которые позволяют передать произвольный объект.Пример использования хэндлера для обработки сообщений приведен в предыдущем посте.
