简单好用的方法:
重写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);
}
本文介绍了一种通过重写dispatchKeyEvent方法来控制应用中返回键行为的技术。当按下返回键时,程序将首先检查是否满足退出条件,如果在短时间内连续两次按下返回键,则退出应用程序。
211

被折叠的 条评论
为什么被折叠?



