我试图覆盖后退按键的功能。当用户按下它一次时,我希望它返回到上一个屏幕。然而,当长按后退键(例如,长按两秒或更长时间)时,我希望退出应用程序。
到目前为止,我在我的活动中重写了这两个方法:
@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
中完成,并使用重复次数/毫秒数来检测它?