也许有人可以解释我,如何正确地从OnLongClickListener振动。在下面的方法中,振动非常短。
如果我按预期设置return false;
振动持续5000毫秒,则会触发OnClickListener
。
我应该如何从OnLongClickListener振动整个时间段,而不是触发OnClickListener
?
final Vibrator x = (Vibrator) getParent()
.getSystemService(Context.VIBRATOR_SERVICE);
button.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
x.vibrate(5000);
return true;
}
});
答案 0 :(得分:0)
您可以将定时器设置为在振动期间运行,并且只有在超时后才返回True。有点胖,但它应该有效。
答案 1 :(得分:0)
当触发click事件时,它会向下传递给可用的最低处理程序(除非有人中断)。在您的情况下,长按事件首先传递给OnLongClickListener
。如果该侦听器返回true
,它基本上宣布已经处理了此单击事件。如果它返回false
,它会宣布click事件没有被它处理,这就是为什么事件会在层次结构中更高级地传递给它上面的处理程序,在你的情况下,{{1 }}
这就是为什么返回OnClickListener
不可行的原因,因为你确实想要处理长按事件。
如何为振动本身创建后台线程或false
。
喜欢的东西:
ASyncTask
我没有测试代码,但应该没问题。