Android 再按一次返回鍵退出的第三種方式
這里給出的,只是另一種實現思路。網上也看到其他方式,原理都是延時判斷。
網上已經有了其他方式,個人感覺,onKeyDown里面,盡量減少操作,便有了下面的實現思路。
使用Handler進行實現,在onKeyDown里面只需要發送一條消息,其他操作全交給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);
}
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!