1. 程式人生 > >Android 雙擊返回鍵退出程式 實現

Android 雙擊返回鍵退出程式 實現

思路:使用者按下返回鍵時設定一個定時器來監控是否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);
		}
	}

其中onKeyDown()函式可以在選單欄Source->Override/Implement Methods裡找到,雙擊即可自動新增到程式碼中。