Так вот в чем проблема,
Я создаю игровое приложение для Android и тестирую его с помощью эмулятора Android (версия 28.0.22).Вход в игру осуществляется через обратные вызовы onKeyDown
/ onKeyUp
, реализованные в моем топе Activity
.При работе в эмуляторе я использую настоящую клавиатуру моего ПК, и у меня странное поведение:(1) когда я нажимаю клавишу, вызывается onKeyDown
, но затем onKeyUp
вызывается почти сразу, даже если я не отпускаю палец(2) Я оставляю кнопку нажатой, onKeyDown
/ onKeyUp
вызываются последовательно, но информация getRepeatCount()
из keyEvent
всегда равна 0.(3) Если я отпущу ключ, onKeyUp, похоже, не будет вызван.Что касается пункта (1) и (2), то, по-видимому, существует исключение для KEYCODE_DPAD_UP
, KEYCODE_DPAD_DOWN
, KEYCODE_DPAD_RIGHT
, KEYCODE_DPAD_LEFT
, KEYCODE_DEL
, KEYCODE_ENTER
: поведение для onKeyDown
/ onKeyUp
соответствует тому, что я ожидаю.Это проблема с эмулятора?Это проблема программирования?