-5

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

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

1 回答 1

0

dispatchGesture 文档

callback AccessibilityService.GestureResultCallback:当手势状态已知时回调的对象。如果为 null,则不报告任何状态。

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

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

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

于 2017-07-23T06:22:55.933 回答