Java 如何临时禁用/绕过Android OnTouchEvent
我目前正在使用该事件Java 如何临时禁用/绕过Android OnTouchEvent,java,android,eclipse,events,touch-event,Java,Android,Eclipse,Events,Touch Event,我目前正在使用该事件 @Override public boolean onTouchEvent(MotionEvent ev) { 为我正在编写的游戏提供用户反馈。此事件触发一些需要一些时间才能完成的游戏控制事件(因为涉及动画)。我遇到的问题是,在动画期间,如果我一直触摸屏幕(也称为触发此事件),我将得到一个超时错误: 10-02 21:58:30.776:错误/活动管理器(67):原因:keyDispatchingTimedOut 基本上,当动画运行时,我不需要此事件,尽管将其排队会很好
@Override
public boolean onTouchEvent(MotionEvent ev)
{
为我正在编写的游戏提供用户反馈。此事件触发一些需要一些时间才能完成的游戏控制事件(因为涉及动画)。我遇到的问题是,在动画期间,如果我一直触摸屏幕(也称为触发此事件),我将得到一个超时错误:
10-02 21:58:30.776:错误/活动管理器(67):原因:keyDispatchingTimedOut
基本上,当动画运行时,我不需要此事件,尽管将其排队会很好
我可以做些什么来防止超时,或者将事件排队,或者暂时禁用它
谢谢。您是否有可能阻止UI线程?除了罗曼所说的之外,绝对没有理由去做你所要求的(甚至不可能:)。
您可能希望在onTouchEvent上使用sleep()。实现这一点的简单方法是在其上添加transaperent布局(将其添加到xml填充父高度和宽度中) 在动画开始布局中,设置ClickAbe(true);在动画布局中,设置ClickAbe(false)
非常简单。当标志为真时,使用标志。回去吧。否则,处理事件你能解释一下“阻塞线程”吗?我可能正在这么做。我基本上是在做我自己的动画。一个线程只绘制屏幕,而另一个线程在移动可绘制内容之间使用延迟。这个OnTouchEvent会触发移动可拖动设备。不幸的是,我不能这样做,因为动画可能需要0.5秒到5秒或更长的时间。你是什么意思?你如何运行你的动画?我正在使用GLSurfaceView,它使用自己的渲染线程。当我收到touchevent时,我设置了一个布尔值来播放动画。然后在渲染线程上,我检查是否在渲染运行期间播放动画。您仍然可以在不影响动画的情况下休眠事件。