简单好用的方法:
重写onKeyDown或者dispatchKeyEvent都能实现,
按返回键时先执行dispatchKeyEvent方法;
返回值:return true或false;只会执行自己的方法;
return super.dispatchKeyEvent(event);会继续调用系统的方法。
以重写dispatchKeyEvent方法为例:
private long lastExitTime = 0;
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
// 判断2次点击事件时间
if ((System.currentTimeMillis() - lastExitTime) > 2000) {
Toast.makeText(MainActivity.this, "再按一次退出",0).show();
lastExitTime = System.currentTimeMillis();
} else {
finish();
}
}
return true;
}
return super.dispatchKeyEvent(event);
}