實現應用中不可缺乏的事件,兩次點擊返回鍵實現退出應用,這裏寫了兩種方法,都很簡單,先開始方法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 }