处理程序作为方法参数

时间:2017-07-23 06:08:11

标签: java android android-handler android-accessibility

为什么有些api将处理程序作为方法参数?有哪些可能的用例?具体来说,我需要有人解释为什么我们需要一个处理程序 调度方法。我正在尝试使用此dispatchgesture方法代表用户执行拖动操作。

boolean dispatchGesture (GestureDescription gesture, 
                AccessibilityService.GestureResultCallback callback, 
                Handler handler)

1 个答案:

答案 0 :(得分:0)

来自dispatchGesture doc

  

回调 AccessibilityService.GestureResultCallback:对象   当手势的状态已知时回叫。如果为null,则无状态   据报道。

     

处理程序 处理程序:要回调的处理程序   回调对象。如果为null,则在服务上回调该对象   主线。

这基本上意味着,如果你不提供Handler,那么给定的回调将在主线程上运行。

总是不鼓励在主线程中运行昂贵的UI更新程序任务。所以,当你将一个处理程序作为方法参数传递时,大部分时间都是通过取消一些重任务来减轻UI线程,在另一个线程中处理它(在这种情况下是处理程序)并在完成后发布结果。