onKeyDown的返回值:
返回true,以防止此事件被进一步传播。
返回false,表示还没有处理完这个事件,它应该继续传播到其他监听。
mExitTime是一个全局变量,记录时间用。
private long mExitTime; //实现“再按一次退出”的记录时间变量
System.exit(0):0代表正常退出程序,非零为不正常!
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//首先判断用户有没有按下返回键
if (keyCode==KeyEvent.KEYCODE_BACK){
//判断用户按下的时间是不是大于2秒,如果大于2秒则认为是失误操作
if ((System.currentTimeMillis()-mExitTime)>2000){
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
mExitTime=System.currentTimeMillis();//记住当前时间,下次再按返回键时做对比
}else {
System.exit(0);//小于2秒推出程序
}
return true;//返回true不在往下运行
}
return super.onKeyDown(keyCode, event);
}