个人觉得当用户按下后退键时,出现"再按一次退出"的提示防止误操作比弹出一个对话框是会更人性化的。话不多说上代码:
第一种:重写onKeyDown来监听:
- longwaitTime=2000;
- longtouchTime=0;
- @Override
- publicbooleanonKeyDown(intkeyCode,KeyEventevent){
- if(event.getAction()==KeyEvent.ACTION_DOWN&&KeyEvent.KEYCODE_BACK==keyCode){
- longcurrentTime=System.currentTimeMillis();
- if((currentTime-touchTime)>=waitTime){
- Toast.makeText(this,"再按一次退出",Toast.LENGTH_SHORT).show();
- touchTime=currentTime;
- }else{
- finish();
- }
- returntrue;
- }
- returnsuper.onKeyDown(keyCode,event);
- }
第二种是重写onBackPressed方法直接监听返回键:
- longwaitTime=2000;
- longtouchTime=0;
- @Override
- publicvoidonBackPressed(){
- longcurrentTime=System.currentTimeMillis();
- if((currentTime-touchTime)>=waitTime){
- Toast.makeText(this,"再按一次退出",Toast.LENGTH_SHORT).show();
- touchTime=currentTime;
- }else{
- finish();
- }
- }
实现代码是一样的只是重写的方法不同罢了。