我们在使用软件的时候,经常会遇见这种情况:点击返回键,提示“再按返回键退出”。这是为了防止用户的误操作,不小心按到返回键而直接退出应用了,影响到刚才在应用里的操作。连续两次误按返回键的几率会小很多,所以用连按两次返回键来确认用户确实要退出程序。
在MainActivity(连续按两次Back键要退出的Activity)里,重写onKeyDown()或者onBackPressed(),两种方法。
第一种方法:
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("再按一次退出程序");
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
第二种方法:
private boolean quit = false; //设置退出标识
@Override
public void onBackPressed() {
if (!quit) { //询问退出程序
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
new Timer(true).schedule(new TimerTask() { //启动定时任务
@Override
public void run() {
quit = false; //重置退出标识
}
}, 2000); //2秒后运行run()方法
quit = true;
} else { //确认退出程序
super.onBackPressed();
finish();
}
}