Обработчик как параметр метода
Почему некоторые API имеют обработчик в качестве параметра метода? Каковы возможные варианты использования? В частности, мне нужен кто-то, чтобы объяснить, почему нам нужен обработчик в методе диспетчеризации. Я пытаюсь выполнить операцию перетаскивания от имени пользователя, используя этот метод диспетчеризации.
boolean dispatchGesture (GestureDescription gesture,
AccessibilityService.GestureResultCallback callback,
Handler handler)
1 ответ
От dispatchGesture
док,
callback AccessibilityService.GestureResultCallback: объект для обратного вызова, когда известен статус жеста. Если ноль, статус не сообщается.
handler Handler: обработчик для вызова объекта обратного вызова. Если ноль, объект вызывается обратно в главном потоке службы.
По сути, это означает, что если вы не предоставите обработчик, данный обратный вызов будет выполняться в основном потоке.
Запуск дорогостоящей задачи обновления пользовательского интерфейса в основном потоке не рекомендуется. Поэтому, когда вы передаете обработчик в качестве параметра метода, большую часть времени он может облегчить поток пользовательского интерфейса, сняв некоторые из тяжелых задач, обработать его в другом потоке (в данном случае обработчик) и опубликовать результат, когда это сделано.