实现应用中不可缺乏的事件,两次点击返回键实现退出应用,这里写了两种方法,都很简单,先开始方法1:java
先定义一个两次点击返回键的间隔时间ide
//第一次点击与第二次点击的间隔时间 private long exitTime;
而后实现点击返回键的事件this
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ exit(); return true; } return super.onKeyDown(keyCode, event); } private void exit(){ if((System.currentTimeMillis() - exitTime) > 2000){ Toast.makeText(this, "再次点击退出应用", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); }else{ finish(); System.exit(0); } }
接下来实现方法2,经过Handler延时发送更改状态消息达到退出应用:spa
1 //定义一个判断是否要退出的变量 2 private boolean isExit = false; 3 4 Handler handler = new Handler(){ 5 @Override 6 public void handleMessage(@NonNull Message msg) { 7 super.handleMessage(msg); 8 isExit = false; 9 } 10 };
而后实现点击系统返回键的事件(注意方法exit中的判断是"!isExit"):code
1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 if(keyCode == KeyEvent.KEYCODE_BACK){ 4 exit(); 5 return false; 6 } 7 return super.onKeyDown(keyCode, event); 8 } 9 10 private void exit(){ 11 if(!isExit){ 12 isExit = true; 13 Toast.makeText(this, "再次点击退出应用", Toast.LENGTH_SHORT).show(); 14 //经过Handler的延迟发送更改状态消息 15 handler.sendEmptyMessageDelayed(0,2000); 16 }else{ 17 finish(); 18 System.exit(0); 19 } 20 }