Android中实现点击两次返回键退出程序的效果
来源:互联网 发布:网络电影大卖的排名 编辑:程序博客网 时间:2024/05/20 22:36
第一种办法
响应Activity的 onKeyUp事件,两次点击时间大于2秒钟就不响应,小于2秒钟就退出程序
代码:
//记录用户首次点击返回键的时间private long firstTime = 0;
/**
* 第一种解决办法 通过监听keyUp
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(MainActivity.this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
firstTime = secondTime;
return true;
} else {
System.exit(0);
}
}
return super.onKeyUp(keyCode, event);}第二种办法
和第一种办法一样,这不过这次响应onKeyDown事件
代码:
/**
* 第二种办法
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(MainActivity.this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
firstTime = secondTime;
return true;
} else {
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}
第三种办法
直接重写onBackPressed()方法
代码:
/**
* 第三种方法
*/
@Override
public void onBackPressed() {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(MainActivity.this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
firstTime = secondTime;
} else {
System.exit(0);
}
第四种办法通过线程延时的办法实现,借助Timer代码:
/**
* 第四种方法
*/
@Override
public void onBackPressed() {
if (!mBackKeyPressed) {
Toast.makeText(this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
mBackKeyPressed = true;
new Timer().schedule(new TimerTask() {
@Override
public void run() {
mBackKeyPressed = false;
}
}, 2000);
} else {
this.finish();
System.exit(0);
}
}
第五种办法在onKeyUp()方法内使用Timer /** * 第五种办法 * @param keyCode * @param event * @return */@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { if (!mBackKeyPressed) { Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); mBackKeyPressed = true; new Timer().schedule(new TimerTask() { @Override public void run() { mBackKeyPressed = false; } }, 2000); return true; } else { this.finish(); System.exit(0); } } return super.onKeyUp(keyCode, event);}第六种办法在onKeyDown()方法内使用Timer
/**
* 第六种办法
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
if (!mBackKeyPressed) {
Toast.makeText(this, “再按一次退出程序”, Toast.LENGTH_SHORT).show();
mBackKeyPressed = true;
new Timer().schedule(new TimerTask() {
@Override
public void run() {
mBackKeyPressed = false;
}
}, 2000);
return true;
} else {
this.finish();
System.exit(0);
}
}
return super.onKeyDown(keyCode, event);
}
- Android中实现点击两次返回键退出程序的效果
- 【Android学习】Android实现两次点击返回键退出程序
- Android开发实现点击两次返回键退出程序
- android点击两次返回键实现程序退出
- Android 点击两次返回键退出程序
- Android点击两次返回键退出程序
- Android 点击两次返回键退出程序
- Android:点击返回键两次退出程序
- Android 点击两次返回键退出程序
- Android点击两次返回键退出程序
- Android 点击两次返回键 退出程序
- Android 点击两次返回键退出程序
- Android点击两次返回键退出程序
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- Android实现点击两次返回键退出
- JDK配置及在IDEA中关联
- Awesome Chrome 插件集锦
- indexDB:html5本地数据库存储
- HTML页面中复选框的小操作
- 使用 SCTP 优化网络
- Android中实现点击两次返回键退出程序的效果
- curl模拟登录新浪微博
- 不得已二 Java两个栈模拟一个队列
- jQuery的插件datatables,一个bootstrap风格的表格控件
- Android学习笔记之AndroidManifest.xml文件解析(详解)
- Java基础--常用类
- iOS修行---收起键盘
- 15个必须知道的chrome开发者技巧
- php函数(四)