今天老大要求项目中增加双击退出程序的功能, 查了下大神们的博客, 随手记录下来:
//记录用户首次点击返回键的时间
private long firstTime = 0;
/**实现双击返回键退出程序
* 方法一
* 通过监听keyUp
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(IndexActivity.this, "再按一次退出应用", Toast.LENGTH_SHORT).show();
firstTime = secondTime;
return true;
} else {
System.exit(0); // 退出程序但 没有杀死进程
}
}
return super.onKeyUp(keyCode, event);
}
/** 方法二
* 监听keyDown
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(IndexActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
firstTime = secondTime;
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}