点击返回键,弹出”再点击一次退出程序”,判断是否是在规定时间内点击返回键,如果相隔时间超出规定时间,则从开始计算点击的次数
//点击两次退出程序
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//判断是是否是点击返回键
if(keyCode==KeyEvent.KEYCODE_BACK){
//判断是否满足退出的条件,如果是第一次点,或者是两次点击时间间隔超出2s,则重新计算次数
if(isQuit==false){
isQuit=true;
//提示再点一次才能退出程序
Toast.makeText(MainActivity.this,"再点击一次退出程序",Toast.LENGTH_SHORT).show();
TimerTask task=null;
task=new TimerTask() {
@Override
public void run() {
isQuit=false;
}
};
//实例化一个定时器
Timer timer=new Timer();
//规定在2s内,超出2s则isQuit=false
timer.schedule(task,2000);
}else{
//如果在2s内点击两次,则isQuit=true,退出程序
System.exit(0);
}
}
return false;
}
点击返回键,弹出对话框,选择是否退出
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0){
ExitDialog(MainActivity.this).show();
return true;
}
return false;
}
//定义对话框
private Dialog ExitDialog(Context context){
AlertDialog.Builder builder=new AlertDialog.Builder(context);
builder.setTitle("");
builder.setMessage("确定要退出?");
builder.setNegativeButton("否",null);
builder.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.exit(0);
}
});
return builder.create();
}