1. 程式人生 > >Android 點選兩次退出app

Android 點選兩次退出app

Android 中使用者要退出應用程式,看到大部分退出應用程式的做法是:彈出一個對話方塊,使用者點了確定後退出。個人覺得這使用者體驗有點不好,手指還要往螢幕中間移動再點 擊。使用者按了一次後退鍵,這可能使用者是誤按了後退鍵,並不想直接退出程式,給使用者提示”再按一次後退鍵退出應用程式“,如果使用者真想退出,直接再按一次後退鍵即可退出整個應用程式。

網上有好多實現方法,看到大部分人部落格轉的方法如下:

private static Boolean isExit = false;  
 
Timer tExit = new Timer();  

MyTimerTask  task;  
class MyTimerTask  extends TimerTask{    

  public void run() {  
     isExit = false; 
  }  
}      
 
public boolean onKeyDown(int keyCode, KeyEvent event) {  
     
    if (keyCode == KeyEvent.KEYCODE_BACK) {  
        if(isExit == false ) {  
            isExit = true;  
            Toast.makeText(this, "再按一次後退鍵退出應用程式", Toast.LENGTH_SHORT).show();  
            if(task!=null)  
                task.cancel();                // 將原任務從佇列中移除  
           task = new MyTimerTask();          // 新建一個任務        
                   tExit.schedule(task, 2000);  
        } else {  
            finish();
       System.exit(0);  
        }  
   }  
     return false;  
}

經過測試,功能正常,還有一種簡便方法也和大家分享一下:

private long exitTime = 0;  
 
public boolean onKeyDown(int keyCode, KeyEvent event) {  
   if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){  
       if((System.currentTimeMillis()-exitTime) > 2000){  
           Toast.makeText(getApplicationContext(), "再按一次後退鍵退出程式", Toast.LENGTH_SHORT).show();  
           exitTime = System.currentTimeMillis();  
       } else {  
           //退出程式碼  
       }  
       return true;  
   }  
   return super.onKeyDown(keyCode, event);  
}