Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台,而回到桌面的尴尬情况,在Android上有两种方法来获取该按钮的事件。

1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规方法,直接重写Activity的onKeyDown方法即可,代码如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复
//增加自己的处理逻辑
Toast.makeText(TestBackActivity.this,"监听系统返回键",
Toast.LENGTH_LONG).show();
return true;
}
return super.onKeyDown(keyCode, event);
}

2、重写onBackPressed方法

而对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可,代码如下:

@Override
public void onBackPressed() {
//super.onBackPressed();这句话一定要注掉,不然又去调用默认的back处理方式了
// 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdk }

eg:双击退出应用程序:

 /**
* 返回键两次点击,第一次点击的时间
*/
private long exitTime = 0;
@Override
public void onBackPressed() {
//super.onBackPressed();这句话一定要注掉,不然又去调用默认的back处理方式了
// 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdk
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(getApplicationContext(), "再按一次退出程序",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
}

最新文章

  1. 搭建Hadoop2.5.2+Eclipse开发调试环境
  2. HDU1257
  3. java历史集合类对比
  4. oracle 10G以上版本 树形查询新加的几个功能
  5. webservice wsdl 生成服务
  6. VBS基础篇 - RegExp 对象
  7. 浅析ASP.NET的状态保持
  8. C# 给picturebox添加滚动条
  9. 以前5年只专注于.net,现今开始学习java.
  10. php 自己写的好看的分页类
  11. Ajax辅助方法
  12. Linux中什么是动态网站环境及如何部署
  13. mysql优化:explain分析sql语句执行效率
  14. Python知识体系思维导图:
  15. 用理论告诉你 三极管和MOS管的区别在哪
  16. upload-labs
  17. CAP Twelve Years Later: How the "Rules" Have Changed
  18. 20165336 预备作业3 Linux安装及学习
  19. IP/子网掩码/网关/广播地址
  20. scala spark 聚类

热门文章

  1. fcc 响应式框架Bootstrap 练习3
  2. Android studio 中R.menu的创建
  3. (转)Struts2的标签库
  4. iOS UIWebView 访问https绕过证书验证的方法
  5. 如何让git忽略指定的文件
  6. 安装hiredis后swoole扩展消失
  7. vue刷新本页面
  8. 爬虫之cookie
  9. How To : Modify ASM SYS password using asmcmd 11g R2 and upper
  10. codevs1961 躲避大龙