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