Android中再按一次退出实现
2014-02-14 15:52
399 查看
很多应用中都有一个在用户后退的时候显示“再按一次退出”的提醒,这个怎么实现呢?有两种方式
第一种方式(最常用)
long waitTime = 2000;
long touchTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {
long currentTime = System.currentTimeMillis();
if((currentTime-touchTime)>=waitTime) {
//让Toast的显示时间和等待时间相同
Toast.makeText(this, "再按一次退出", (int)waitTime).show();
touchTime = currentTime;
}else {
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
第二种方式
重写onBackPressed方法直接监听返回键
@Override
public void onBackPressed() {
long currentTime = System.currentTimeMillis();
if((currentTime-touchTime)>=waitTime) {
//让Toast的显示时间和等待时间相同
Toast.makeText(this, "再按一次退出", (int)waitTime).show();
touchTime = currentTime;
}else {
finish();
}
}
这种方法虽然写法简单,但是这种方法缺只适用于Android 2.0以后.
如果你需要同时重写这两个方法,可能要注意一些问题啦!系统先是onKeyDown,如果return true了,就不会onBackPressed了。
第一种方式(最常用)
long waitTime = 2000;
long touchTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {
long currentTime = System.currentTimeMillis();
if((currentTime-touchTime)>=waitTime) {
//让Toast的显示时间和等待时间相同
Toast.makeText(this, "再按一次退出", (int)waitTime).show();
touchTime = currentTime;
}else {
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
第二种方式
重写onBackPressed方法直接监听返回键
@Override
public void onBackPressed() {
long currentTime = System.currentTimeMillis();
if((currentTime-touchTime)>=waitTime) {
//让Toast的显示时间和等待时间相同
Toast.makeText(this, "再按一次退出", (int)waitTime).show();
touchTime = currentTime;
}else {
finish();
}
}
这种方法虽然写法简单,但是这种方法缺只适用于Android 2.0以后.
如果你需要同时重写这两个方法,可能要注意一些问题啦!系统先是onKeyDown,如果return true了,就不会onBackPressed了。
相关文章推荐
- Android中再按一次退出实现
- 在Android4.2.2中添加对exFAT文件系统的支持
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android Fragments 详细使用
- android驱动 无法打开设备文件 解决
- Android问题之res/raw和assets文件大小限制
- 使用android 隐藏类和方法
- android学习和广告平台赚钱
- android,数据库创建
- Android SwipeListView 实现ListView的滑动删除效果
- android SwipeListView开源项目导入
- Android Fragment完全解析,关于碎片你所需知道的一切
- 众多Android 开源项目推荐,给力工作给力学习
- Android使用SimpleAdapter更新ListView里面的Drawable元素
- GitHub上最火的74个Android开源项目(三)
- GitHub上最火的40个Android开源项目(二)
- android数据库SQLite简单测试
- Android 电话状态监听
- 直接拿来用!最火的Android开源项目(一)
- android:scrollbar的一些属性