Androidがもう一度戻るキーを押して終了する3つ目の方法


ネット上ですでにその他の方式があって、個人の感じ、onKeyDownの中で、できるだけ操作を減らして、次の実現の構想があります.
Handlerを使用して実装し、onKeyDownでメッセージを1つ送るだけで、他の操作はhandleMessageに任せて処理すればOKです.
まず、Handlerとイベントと待機時間を定義します.
private static final int MSG_EXIT = 1;
private static final int MSG_EXIT_WAIT = 2;
private static final long EXIT_DELAY_TIME = 2000;
private Handler mHandle = new Handler() {
    public void handleMessage(Message msg) {
        switch(msg.what) {
            case MSG_EXIT:
                if(mHandle.hasMessages(MSG_EXIT_WAIT)) {
                    finish();
                } else {    
                    Toast.makeText(MainActivity.this, "         ", Toast.LENGTH_SHORT).show();
                    mHandle.sendEmptyMessageDelayed(MSG_EXIT_WAIT, EXIT_DELAY_TIME);
                }
                break;
            case MSG_EXIT_WAIT:
                break;
        }
    }
};

次に、onKeyDownを再ロードします.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(KeyEvent.KEYCODE_BACK == keyCode) {
        mHandle.sendEmptyMessage(MSG_EXIT);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}