Android 實現按兩次返回鍵退出程序


// 是否退出程序
private static Boolean isExit = false;
// 定時觸發器
private static Timer tExit = null;

	public boolean onKeyUp(int keyCode, KeyEvent event) {

		if (keyCode == KeyEvent.KEYCODE_BACK) {
			if (isExit == false) {
				isExit = true;
				if (tExit != null) {
					tExit.cancel(); // 將原任務從隊列中移除
				}
				// 重新實例一個定時器
				tExit = new Timer();
				TimerTask task = new TimerTask() {
					@Override
					public void run() {
						isExit = false;
					}
				};
				Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
				// 延時兩秒觸發task任務
				tExit.schedule(task, 2000);
			} else {
				finish();
				System.exit(0);
			}
			return true;
		}
		return super.onKeyUp(keyCode, event);
	}

原理很簡單:定義一個TimerTask定時器和一個是否退出程序的標識isExit,第一次按返回鍵,賦值isExit標識爲true,開啓定時器TimerTask 任務,兩秒鐘後賦值isExit標識爲false,所以用戶在這兩秒中內再按一次返回鍵,則退出程序。否則定時器TimerTask任務執行,標誌爲false。原理就是這麼簡單~


發佈了75 篇原創文章 · 獲贊 16 · 訪問量 111萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章