Как правильно перехватывать нажатие кнопок?
Добавлено: 10 июн 2012, 18:34
Есть активити и переопределенный SurfaceView в котором идет обработка нажатия.
При нажатии на кнопку "меню" или "назад" элемент должен переводится в режим паузы. Но требуемая реакция на нажатие возникает не всегда.
Если до этого не нажимать на кнопки, тогда программа не видит эти кнопки, т.е. само событие не приходит. А вот если нажать например кнопку вниз, то после этого все начинает работать правильно.
Код не привожу, так как он очень большой. Скажу лишь, что есть флаг isPause, который меняется в обработчике нажатия и считывается при отработке такта (события от таймера-потока). Т.е. все тупо и шаблонно. Вероятность, что баг в коде стремится к нулю. Скорей всего это как-то связано с самой системой.
setFocusable(true); делал.
Другими словами, обработка нажатий начинается после нажатия на крестовину, и перестает работать если прикоснуться к экрану.
Как быть? Что не так?
При нажатии на кнопку "меню" или "назад" элемент должен переводится в режим паузы. Но требуемая реакция на нажатие возникает не всегда.
Если до этого не нажимать на кнопки, тогда программа не видит эти кнопки, т.е. само событие не приходит. А вот если нажать например кнопку вниз, то после этого все начинает работать правильно.
Код не привожу, так как он очень большой. Скажу лишь, что есть флаг isPause, который меняется в обработчике нажатия и считывается при отработке такта (события от таймера-потока). Т.е. все тупо и шаблонно. Вероятность, что баг в коде стремится к нулю. Скорей всего это как-то связано с самой системой.
setFocusable(true); делал.
Другими словами, обработка нажатий начинается после нажатия на крестовину, и перестает работать если прикоснуться к экрану.
Как быть? Что не так?