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);
}
开始先定义一个long类型的退出时间 exitTime =0;
再重写onKeyDown();方法判断按下的是不是返回键并且是不是按下的操作;
再用当前的时间减去exitTime,第一次运行肯定是大于2000的,这里设置的2000,是两次按返回键退出的间隔,自己定义时间,
运行if语句里边的代码,这样给exitTime设置当前的时间,并提示用户再按一次退出。当用户再次点击返回键的时候这是如果两次的间隔小于2000就会执行else中的代码,就会退出程序。
本文介绍了一种手机应用中实现二次按返回键强制退出的机制,通过定义退出时间间隔来确保用户在意外操作后能够撤销退出操作。具体实现包括重写 onKeyDown() 方法,判断按键事件是否为返回键并检查按键动作是否为按下,通过比较当前时间与上次退出尝试的时间差来决定是否退出应用。
152

被折叠的 条评论
为什么被折叠?



