Android обрабатывает событие key up, пока отображается меню - PullRequest
7 голосов
/ 30 июня 2011

Вот моя проблема.

Я переопределяю клавишу уменьшения громкости, чтобы мое приложение выполняло какую-то конкретную задачу, пока оно долго нажимается, оно нормально работает.Я могу перехватить нажатие клавиши и активизировать события для этого.

События ключевых слушателей записываются в конкретный пользовательский компонент, а не в активность, где этот компонент используется.

Проблема возникает, когда я нажимаю кнопку меню, когда нажимаю клавишу уменьшения громкости, и когдаЯ отпускаю его, пока отображается меню, я не могу перехватить событие его нажатия.

Можете ли вы объяснить причину этого?И можно ли решить эту проблему или нет?

Спасибо.

1 Ответ

5 голосов
/ 30 июня 2011

При нажатии на кнопку Menu ваше изменение фокуса окна. Фокус пришел в меню. Из-за этого onKeyDown () не работает, потому что onKeyDown будет работать, если фокус экрана будет на представлении или действии, которое находится сверху.

Используйте следующий код, чтобы узнать фокус экрана

@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        // TODO Auto-generated method stub
        System.out.println("....window focus changed..");
        super.onWindowFocusChanged(hasFocus);
    }
...