既然想实现 按两次返回键 退出程序 有两个关键词 一个是 “返回键”,再一个是“退出程序” 1)先说“退出” 退出相信大家都会 finish(); System.exit(0); 为了确保不出现问题,两种退出都写上。 2)再来说说“返回键” 需要获得硬件上的按键响应 onKeyDown(int keyCode,KeyEvent event) 然后分别作判断 keyCode是否为返回键,event是否为按下 3)完成这些之后,再做一个“两次”的判断 当然可以 int 一个 i 然后做 i++ 的操作 但是这里用的时间间隔做判断条件 每次按下按键,调用System.currentTimeMillis()获取当前时间毫秒数 做差,判断是否大于一个给定的(2000)毫秒数 废话不多说,代码如下 [java] view plaincopy private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); } return true; } return super.onKeyDown(keyCode, event); }