主界面中重写dispatchKeyEvent方法:
- 获取返回按钮点击事件;
- 记录一次点击事件发生时间,第二次点击的时候和第一次时间取差;
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) { // 如果两次按键时间间隔大于2秒,则不退出
KToast.showInfo(context, "再按一次退出程序");
firstTime = secondTime;// 更新firstTime
return true;
} else {
finish();
}
}
return true;
}
return super.dispatchKeyEvent(event);
}