1. 按返回键后,弹出对话框,让用户选择
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
AlertDialog.Builder build = new AlertDialog.Builder(this);
build.setTitle("注意")
.setMessage("确定要退出吗?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
break;
default:
break;
}
return false;
}
2. 按返回键后,弹出 Toast 提示 ,再按一次退出程序
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(MainActivity.this,"再按一次退出程序",Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
在这里要说明一下:
(1)不要忘记,这个方法是重写的
(2)对于初学者来说,有的同学会只添加这段代码,就会按完之后返回登录或注册页面,这个原因就是没有在 登录 或注册页面里 finish() ,这样登录注册还是在任务栈里面,对于这块,我建议有想法的人,可以了解一下activity的四种加载模式,这块就会更加理解了。
如有什么不足,请多多指教, 欢迎大家转载。