为什么有些api将处理程序作为方法参数?有哪些可能的用例?具体来说,我需要有人解释为什么我们需要一个处理程序 调度方法。我正在尝试使用此dispatchgesture方法代表用户执行拖动操作。
boolean dispatchGesture (GestureDescription gesture,
AccessibilityService.GestureResultCallback callback,
Handler handler)
答案 0 :(得分:0)
来自dispatchGesture
doc,
回调 AccessibilityService.GestureResultCallback:对象 当手势的状态已知时回叫。如果为null,则无状态 据报道。
处理程序 处理程序:要回调的处理程序 回调对象。如果为null,则在服务上回调该对象 主线。
这基本上意味着,如果你不提供Handler,那么给定的回调将在主线程上运行。
总是不鼓励在主线程中运行昂贵的UI更新程序任务。所以,当你将一个处理程序作为方法参数传递时,大部分时间都是通过取消一些重任务来减轻UI线程,在另一个线程中处理它(在这种情况下是处理程序)并在完成后发布结果。