代码之家  ›  专栏  ›  技术社区  ›  Raul Lapeira Herrero

android inputmanagercompat.inputdevicelistener自定义类未接收任何方法的回调

  •  0
  • Raul Lapeira Herrero  · 技术社区  · 6 年前

    我有一个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。 onGenericMotionEvent onKeyUp 被称为。

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

    我观察到的事情:

    • 无论如何,当我运行应用程序时,我的方法需要一些时间 被称为,好像我应该强迫 快点(也许)。
    • 我修改的代码是基于did work的,但是我引入了 其他看起来根本不相关的东西(其他类、线程)
    • logcat中没有异常或错误,已经确保没有空捕获和类似的东西

    你对这种行为有什么线索或建议吗?

    提前谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Raul Lapeira Herrero    6 年前

    所以看起来我把回调方法放在活动中的一个特定视图中(它有其他元素,比如textview),这意味着只有当特定元素被聚焦时,输入才会被捕获在回调中……这就是为什么文档告诉您将回调放在活动或视图中…也许把这种行为放在活动中更有意义,这样无论什么是焦点,它都会被捕获。