Android InputManagerCompat.InputDeviceListener自定义类未在任何方法上接收回调

时间:2018-08-13 18:32:08

标签: android gamepad

我有一个Android应用程序,该应用程序使用扩展以下类型的类:

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
public class GamePadController extends View implements InputManagerCompat.InputDeviceListener {
    // The current device that is controlling the ship
    private InputDevice mInputDevice;
    private int mDPadState;
    ...

当我在移动设备上运行apk时,有时会在Android中捕获Gamepad,并调用我的自定义方法onGenericMotionEventonKeyUp

这是一种随机行为,有时会调用我的方法并执行我的行为,但有时只会发生默认行为(如未注册我的类)。

我观察到的事情

  • 无论如何,当我运行应用程序时,我的方法都需要花费一些时间 被称为,例如是否有一些我应该强迫的延迟加载 早一点(也许)。
  • 我所做更改的代码确实有效,但是我介绍了 看起来根本不相关的其他东西(其他类,一个线程)
  • LogCat中没有异常或错误,已经确保没有空捕获或类似情况

您对此行为有任何线索或建议吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

因此,似乎我将回调方法放在Activity内的特定视图中(该视图具有其他元素,例如textviews),这意味着仅当该特定元素被聚焦时,输入才被捕获在回调中……为什么文档告诉您将回调函数放在“活动”或“视图”中……将这种行为放入活动中可能更有意义,因此无论重点是什么,都可以捕获它。