Android开发:Android 按2次back键程序才退出
来源:互联网 发布:日本国立大学学费知乎 编辑:程序博客网 时间:2024/05/18 08:29
2S内再次点击则退出
在我们使用的app中,会出现这种情况,按下back键app 没退出,弹出吐司“再按一次将退出”,然后我们按一次,app退出了,代码很简单。一是根据Boolean 类型的isExit的值判断是否退出
二是根据连续2次按下的时间间隔是否符合我们的条件,来退出。
方法一:boolean限制
protected boolean flag = false;
@Overridepublic void onBackPressed() { if (flag) { super.onBackPressed(); System.exit(0); } else { Toast.makeText(MainActivity.this, "再点一次则退出App", Toast.LENGTH_SHORT).show(); flag = true; new Handler().postDelayed(new Runnable() { @Override public void run() { flag = false; } }, 2000); }}
private boolean isExit=false;//确保第一次按back不退出,因为不走if
@Overridepublic void onBackPressed() { if (isExit) { finish();//关闭activity System.exit(0);//程序退出 } else { Toast.makeText(getApplicationContext(), "再按一次将退出", Toast.LENGTH_LONG).show(); isExit=true;//值改为true,确保第二次按走if退出 Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { isExit=false;//2s后将值重新改成false,确保2次按下的事件在2分钟内.也可以用handler将值改为false } }, 2000); }}
方法二:判断时间间隔<2000毫秒,退出app
long exitTime=0;
@Overridepublic void onBackPressed() { if (System.currentTimeMillis()-exitTime>2000) { Toast.makeText(getApplicationContext(), "再按一次将退出", Toast.LENGTH_LONG).show(); exitTime=System.currentTimeMillis(); } else { finish(); System.exit(0); }} @Override public void onBackPressed() { if (System.currentTimeMillis() - time < 2000) { super.onBackPressed(); } else { showToast("再点击一次退出哦!"); time = System.currentTimeMillis(); } }
按钮禁止连续点击
long oldTime = 0;
btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { long clickTime = System.currentTimeMillis(); if (clickTime - oldTime > 2000) { ToastUtil.showShortToast(MainActivity.this, "再按一次则退出app"); } else { ToastUtil.showShortToast(MainActivity.this, "退出App"); } oldTime = clickTime; }});
给所有的按钮统一添加
public class CustomOnClickListener implements View.OnClickListener { public CustomOnClickListener(TimeLimitClickListener listener) { this.listener = listener; } long oldTime = 0; @Override public void onClick(View v) { long clickTime = System.currentTimeMillis(); if (clickTime - oldTime < 2000) { Toast.makeText(v.getContext(), "2s禁止连续点击", Toast.LENGTH_SHORT).show(); } else { setListener(listener); } oldTime = clickTime; } interface TimeLimitClickListener { void xianZhi2s(); } private TimeLimitClickListener listener; private void setListener(TimeLimitClickListener listener) { listener.xianZhi2s(); }}
使用:
btn1.setOnClickListener(new CustomOnClickListener(new CustomOnClickListener.TimeLimitClickListener() { @Override public void xianZhi2s() { }}));
阅读全文
0 0
- Android开发:Android 按2次back键程序才退出
- Android基础:Android 按2次back键程序才退出
- 点击2次Back键退出程序
- [Android]2次返回键退出程序
- android按两次back退出程序!
- android 两次点击back键退出程序
- Android点击两次Back键退出程序
- Android双击back键退出程序
- Android 点击back键两次退出程序
- android按2次返回键退出程序的代码
- android按2次返回键退出程序的代码
- android按2次返回键退出程序的代码
- Android按返回键2次退出程序
- android 按手机返回键2次退出程序
- Android开发笔记: 按2次返回键,退出应用
- android 按两次 才退出程序
- 2次back退出
- Android连续点击两次Back键退出程序 分类: Android
- 使用mailto在网页中链接Email地址
- odoo10日历控件功能增强
- 反射使用
- 动态修改桌面应用图标
- 设计模式之简单单例设计模式
- Android开发:Android 按2次back键程序才退出
- 16:矩阵剪刀石头布(1.8编程基础之多维数组)
- Floyd算法优化
- 多渠道打包 之 批量重名文件名
- BZOJ2597: [Wc2007]剪刀石头布
- Unity UI系统-UGUI简介
- cocos2dx 3.10 网狐土豪金版PC+手机端棋牌平台搭建
- HttpClient 学习笔记
- 用visualVM监控java进程