本文主要是介绍Android 再按一次返回键退出的第三种方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这里给出的,只是另一种实现思路。网上也看到其他方式,原理都是延时判断。网上已经有了其他方式,个人感觉,onKeyDown里面,尽量减少操作,便有了下面的实现思路。
使用Handler进行实现,在onKeyDown里面只需要发送一条消息,其他操作全交给handleMessage去处理就ok。
首先,定义Handler及事件和等待时长:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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:
1 2 3 4 5 6 7 8 | @Override public boolean onKeyDown( int keyCode, KeyEvent event) { if (KeyEvent.KEYCODE_BACK == keyCode) { mHandle.sendEmptyMessage(MSG_EXIT); return true ; } return super .onKeyDown(keyCode, event); } |
这篇关于Android 再按一次返回键退出的第三种方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!