雙擊回退鍵退出應用

只要用戶按下返回鍵就設定一個定時器來監控是否2秒內實現了退出,如果用戶沒有接着按返回鍵,則清除第一次按返回鍵的效果,使程序還原到第一次按下返回鍵之前的狀態。這個定時器是每次用戶按下返回鍵纔去創建,而不是像上面程序啓動就已經創建。

 @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) {  
        // TODO Auto-generated method stub  
        if(keyCode == KeyEvent.KEYCODE_BACK)
        {  
         exitBy2Click();//調用雙擊退出函數
        }                          
        return false;  
    }

 //準備退出
 private static Boolean isExit = false;   

private void exitBy2Click()
 {  
     Timer  tExit = null;
        if(isExit == false ) 
        {  
            isExit = true;  //準備退出
            Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();  
            tExit = new Timer(); 
            tExit.schedule(new TimerTask() {            
             @Override  
             public void run() {  
                 isExit = false;  //取消退出             
             }  
         }, 2000); //如果2秒鐘內沒有按下返回鍵,則啓動定時器取消掉剛纔執行的任務 

        }else{                                                                           
            finish();  
            System.exit(0);         
        }     
 }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章