點擊兩次系統返回鍵實現退出應用

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