方法一:
private boolean isExit;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exitByDoubleClick();
}
return false;
}
private void exitByDoubleClick() {
Timer tExit = null;
if (!isExit) {
isExit = true;
Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
tExit = new Timer();
tExit.schedule(new TimerTask() {
@Override
public void run() {
isExit = false;//取消退出
}
}, 2000);// 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务
} else {
finish();
}
}
方法二(推荐):
private long mBackPressTime = 0;
@Override
public void onBackPressed() {
long nowTime = System.currentTimeMillis();
if(nowTime - mBackPressTime > 2000){
ToastUtils.showShort("再按一次退出程序");
mBackPressTime = nowTime;
} else {
finish();
System.exit(0);
}
}