點選兩次返回退出程式

Web開發者發表於2012-12-21

  點選兩次再退出,可以避免誤點引起退出,提升使用者體驗。

  實現的思路如下:

  首先定義一個布林變數,賦初始值false。然後監聽退出按鈕,點選退出按鈕時,如果該布林變數值為false,則把這個變數置為true;如果該變數為true,則退出程式。最後定義一個時間任務,2秒執行一次,如果布林變數為true,則置為false。

  這樣,在點選第一次退出時,僅僅改變布林值變數,而不會退出,第二次點選才會退出。如果使用者點選了一次,那麼2秒之後布林變數又被置為false,只有2秒內的兩次點選才會退出程式。

private static Boolean isQuit = false;
Timer timer = new Timer();
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (isQuit == false) {
                isQuit = true;
                Toast.makeText(getBaseContext(), "再按一次返回鍵退出程式", Toast.LENGTH_SHORT).show();
                TimerTask task = null;
                task = new TimerTask() {
                    @Override
                    public void run() {
                        isQuit = false;
                    }
                };
                timer.schedule(task, 2000);
            } else {
                finish();
                System.exit(0);
            }
        }
        return false;
}

相關文章