android中Activity實現再按一次退出

fmms 12年前發布 | 29K 次閱讀 Android Android開發 移動開發

在這里,最主要的是覆寫onKeyDown(int, KeyEvent)方法。
對于實現在一定時間內再按一次退出,思路可以如下:
編寫一個輔助類,里面有成員變量boolean isWillExit,當它為true時,則再按一次返回鍵退出。第一次按返回鍵時,isWillExit設置為true,再編寫一個Runnable實例,在指定時間后設置isWillExit為false。

詳細看代碼吧。代碼如下:
以下代碼在Activity中

  Exit exit = new Exit();
    // ...
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            pressAgainExit();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

/**
 * 再按一次退出程序。
 */
private void pressAgainExit() {
    if (exit.isExit()) {
        finish();
    } else {
        Toast.makeText(getApplicationContext(), "再按一次退出程序",
                1000).show();
        exit.doExitInOneSecond();
    }
}</pre>下面是一個輔助類。 <pre class="brush:java; toolbar: true; auto-links: false;">class Exit {
private boolean isExit = false;
private Runnable task = new Runnable() {
    @Override
    public void run() {
        isExit = false;
    }
};

public void doExitInOneSecond() {
    isExit = true;
    HandlerThread thread = new HandlerThread("doTask");
    thread.start();
    new Handler(thread.getLooper()).postDelayed(task, 1000);
}

public boolean isExit() {
    return isExit;
}

public void setExit(boolean isExit) {
    this.isExit = isExit;
}

}</pre>本文原創,轉載請注明ITEYE原文地址:http://maosidiaoxian.iteye.com/blog/1403040 或本人博客地址:http://msdxblog.sinaapp.com/?p=316

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!