Я пытаюсь переопределить функциональность нажатия клавиши возврата. Когда пользователь нажимает ее один раз, я хочу, чтобы она вернулась к предыдущий экран.Однако, когда клавиша возврата удерживается долгим нажатием (скажем, две секунды или более), я хочу выйти из приложения.
К настоящему времени я переопределил эти два метода в своей деятельности:
@Override
public boolean onKeyDown( int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {
//manage short keypress
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyLongPress( int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {
//manage long keypress (different code than short one)
return true;
}
return super.onKeyLongPress(keyCode, event);
}
Но обратный вызов onKeyLongPress
никогда не вызывается, потому что событие всегда принимается методом onKeyDown
.
Есть ли способ заставить оба метода работать? выполнить все в onKeyDown
и использовать количество повторений / миллисекунд для его обнаружения?