Android按返回键退出程序
16lz
2022-04-17
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的四种加载模式,这块就会更加理解了。
如有什么不足,请多多指教, 欢迎大家转载。
更多相关文章
- android事件分发机制一
- android 按钮置灰效果
- Android四大组件Service之bindService启动
- Android:利用SharedPreferences实现自动登录
- android flutter打包 apk 及接facebook 及google登录的密钥生成
- android.database.CursorIndexOutOfBoundsException:Index -1 re
- Android(安卓)编程下 Touch 事件的分发和消费机制
- android之有返回结果跳转intent
- Android中文API(128) —— HandlerThread