关于这个问题,我以前并没有从网上参考别人的方法,自己想法又总是有些呆板。之前采用的方法是,设置一个int标志,0和1.按的时候判断是不是0,不是,加1,是,退出。这个低级错误真是惭愧。导致后来经过几次很长的时间间隔按也会退出。后来想出用定时器,设置时间。效率很低。其实java有直接获取现在的时间的API,再减去上次的时间不就可以得出间隔了?
代码:
private long mExitTime ; //退出时间
//捕捉按键 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ if ((System.currentTimeMillis() - mExitTime) > 2000 ) { Toast.makeText(this, "再按一次退出纵横材价", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); }else{ SysApplication.getInstance().exit(); } return true; } return super.onKeyDown(keyCode, event); }
这里的SysAppication.getInstance().exit();是我自己封装的类。大家用的时候替换自己的。