Android 再按一次返回鍵退出的第三種方式

 使用Handler進行實現,在onKeyDown裏面只需要發送一條消息,其他操作全交給handleMessage去處理就ok。

首先,定義Handler及事件和等待時長:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
privatestatic  final  int  MSG_EXIT = 1;
privatestatic  final  int  MSG_EXIT_WAIT = 2;
privatestatic  final  long  EXIT_DELAY_TIME = 2000;
privateHandler mHandle = newHandler() {
    publicvoid  handleMessage(Message msg) {
        switch(msg.what) {
            caseMSG_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;
            caseMSG_EXIT_WAIT:
                break;
        }
    }
};

 其次,重載onKeyDown:

?
1
2
3
4
5
6
7
8
@Override
publicboolean  onKeyDown(intkeyCode, KeyEvent event) {
    if(KeyEvent.KEYCODE_BACK == keyCode) {
        mHandle.sendEmptyMessage(MSG_EXIT);
        returntrue;
    }
    returnsuper.onKeyDown(keyCode, event);
}
發佈了21 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章