我正在尝试覆盖后退按键的功能。当用户按下它一次时,我希望它回到上一个屏幕。但是,当长按后退键时(比如说,两秒钟或更长时间),我想退出应用程序。
到目前为止,我已经在我的活动中覆盖了这两种方法:
@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
并使用重复/毫秒数来检测它?