监听back按键,再次点击退出应用
2015-10-22 16:06
316 查看
1、使用handler的延时发送Message机制,达到”再次点击退出“ 效果
sendEmptyMessageDelayed(int,int);
参一: 需要传递的值 ; 参二:延迟多少毫秒发送
handler 为全局属性
该方法中判断是否退出应用
在Activity重写onKeyDown()方法,在onKeyDown()中调用 exitApp()方法
2、利用System.currentTimeMillis() 对比。 根据 现在点击back时的时间 与 之前点击back时的时间 的差值 判断是否大于预设值。
sendEmptyMessageDelayed(int,int);
参一: 需要传递的值 ; 参二:延迟多少毫秒发送
handler 为全局属性
// 标记是否连续点击 back boolean isContinuous = false; Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); isContinuous = false; } };
该方法中判断是否退出应用
public void exitApp(){ if(isContinuous){ finish(); }else { isContinuous = true;//设置连续点击标记为true Toast.makeText(this,"再按一次退出程序",Toast.LENGTH_LONG).show(); //如果两次点击之间间隔超过2000毫秒,则会发送message,在handler中重新对标记设置为false **mHandler.sendEmptyMessageDelayed(0,2000);** } }
在Activity重写onKeyDown()方法,在onKeyDown()中调用 exitApp()方法
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode== KeyEvent.KEYCODE_BACK){ exitApp(); return true; } return super.onKeyDown(keyCode, event); }
2、利用System.currentTimeMillis() 对比。 根据 现在点击back时的时间 与 之前点击back时的时间 的差值 判断是否大于预设值。
long firtstTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode== KeyEvent.KEYCODE_BACK){ long secondTime = System.currentTimeMillis(); if (secondTime - firstTime > 2000) { //如果两次按键时间间隔大于2秒,则不退出 Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show(); firstTime = secondTime;//更新firstTime return true; } else { //两次按键小于2秒时,退出应用 System.exit(0); } } return super.onKeyDown(keyCode, event); }
相关文章推荐
- CSS 颜色代码对应表
- PHP学习网
- sql server查找字段中含有汉字
- Nginx开启Gzip压缩大幅提高页面加载速度(转)
- Java特殊字符转义(<、>、"、/、&)
- 2015-2016 ACM-ICPC, NEERC, Moscow Subregional Contest C. Colder-Hotter
- OSX EI Capitan java 6不能安装问题
- second derivative & Hessian matrix
- Objective-C 程序设计 第六章
- linux0.99网络模块-数据链路层(发送)
- 不同内核下类型大小
- HDOJ 1094 A+B for Input-Output Practice (VI)
- java.lang.NumberFormatException: Invalid int: ""
- 程序员书单_sshi框架篇
- keepalived
- linux shell脚本获取git代码
- 关于数据源的配置
- toolkit学习笔记
- 程序员书单_云计算篇
- toolkit学习笔记