事件未送达听众

时间:2014-04-22 14:48:17

标签: android libgdx

我有a libgdx game使用scene2d作为用户界面。我有几个ImageButton个实例,其中有ClickListener个实例。在某些设备上(目前仅在三星Galaxy S3和三星Galaxy S4 Active上看到它),除非快速点击两次,否则事件无法发送。

每次点击失败都会记录以下内容:

04-22 16:10:09.678: D/InputReader(728): Input event: value=1 when=20897610551000
04-22 16:10:09.678: I/InputReader(728): Touch event's action is 0x0 (deviceType=0) [pCnt=1, s=0.889 ] when=20897610612000
04-22 16:10:09.678: I/InputDispatcher(728): Delivering touch to: action: 0x0
04-22 16:10:09.678: I/InputDispatcher(728): Delivering touch to: action: 0x3
04-22 16:10:09.688: W/InputEventReceiver(728): Attempted to finish an input event but the input event receiver has already been disposed.
04-22 16:10:09.688: W/InputEventReceiver(728): Attempted to finish an input event but the input event receiver has already been disposed.
04-22 16:10:09.688: V/WindowManager(728): Window{43478730 u0 Keyguard}mOrientationRequetedFromKeyguard=false
04-22 16:10:09.698: D/STATUSBAR-StatusBarManagerService(728): manageDisableList what=0x0 pkg=WindowManager.LayoutParams
04-22 16:10:09.788: D/InputReader(728): Input event: value=0 when=20897720902000
04-22 16:10:09.788: I/InputReader(728): Touch event's action is 0x1 (deviceType=0) [pCnt=1, s=] when=20897720902000

我假设语句尝试完成输入事件,但输入事件接收器已经被处理掉了。是关键,但我真的不明白为什么只要再点击一次就可以了时间很快。

这可能是什么原因?我怎样才能进一步调试这个到底?有线索吗?

编辑:除最后两个之外的所有日志行都会在触地下方显示,而最后两个日志行在触摸时出现。我的事件监听器是用于点击。

1 个答案:

答案 0 :(得分:1)

我发现导致问题的原因。我遇到了the volume button bug in KitKat的问题,并添加了变通办法(https://stackoverflow.com/a/21253443/467650https://plus.google.com/+MichaelLeahy/posts/CqSCP653UrW)。

我能够绕过我的"双重触摸"通过在运行删除导航栏的处理程序之前减少时间延迟来解决问题,但这对于KitKat来说再也不能正常工作。我当然可以检查运行该应用程序的Android版本,但由于解决方法非常糟糕,我一起将它全部删除。