【问题标题】:Handler as a method parameter处理程序作为方法参数
【发布时间】:2017-12-28 22:41:33
【问题描述】:

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

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

【问题讨论】:

  • 如果您想在非 UI 线程中运行 callback,这很有用
  • 是否可以代表用户使用此方法执行拖动...@pskink
  • 没试过...

标签: java android android-handler android-accessibility


【解决方案1】:

来自dispatchGesturedoc

callback AccessibilityService.GestureResultCallback: 对象 当手势状态已知时回调。如果为空,则无状态 被举报了。

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

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

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

【讨论】:

  • 这回答了我关于处理程序的问题......但是我想要实现的拖动功能呢?可能吗 ? @fluffy蝙蝠侠
  • 恐怕我帮不了你。
猜你喜欢
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多