Android实现"再按一次退出"

onKeyDown的返回值:
返回true,以防止此事件被进一步传播。
返回false,表示还没有处理完这个事件,它应该继续传播到其他监听。

mExitTime是一个全局变量,记录时间用。

private long mExitTime;       //实现“再按一次退出”的记录时间变量

Android实现
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);
    }

你可能感兴趣的:(加深学习)