原文地址:

https://blog.csdn.net/xichenguan/article/details/47030303

最近在研究   Android  编程方面的东西, 有了以下发现,  该部分代码直接放在APP的主界面的Activity中,亲自验证可行,感觉还不错。

其中,  KeyEvent.KEYCODE_BACK   是指用户按下返回键,

KeyEvent.ACTION_DOWN  是指按下键的事件。

该部分代码意思就是

第一次按键返回的时候  提示   再按一次退出程序。

每一次按键返回的时候 和 上一次按键返回的时间  在2000ms 以外则进行提示,否则就退出。

连续两次按下返回键的动作    ,也就是在2000ms之内,你连续两次按下返回键,则退出,否则是提示。

以下是转载内容:

============================================================

用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮。个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码:

private long exitTime = 0;

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
if((System.currentTimeMillis()-exitTime) > 2000){
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}

最新文章

  1. Oracle数据库升级(10.2.0.4->11.2.0.4)
  2. 慕课网-Java入门第一季-6-7 使用 Arrays 类操作 Java 中的数组
  3. 实数---Currency讲解
  4. 字符串与json之间的相互转化
  5. loadmore & scroll
  6. 【mysql】1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL) 问题
  7. 第一章ASP.NET SignalR简介
  8. Java学习笔记之Scanner报错java.util.NoSuchElementException
  9. Centos7上安装Kubernetes集群部署docker
  10. spring boot容器启动详解
  11. 汇编语言2(mooc)
  12. Beta冲刺 第一天
  13. Kafka学习资料
  14. MySQL数据库(三)索引总结
  15. VSCode插件开发全攻略(九)常用API总结
  16. (18)ProcessPoolExecutor进程池
  17. nginx 开启高效文件传输模式
  18. ATL CAxWindow类创建问题一则
  19. Django Form(表单)
  20. Linux文件系统命令 pwd

热门文章

  1. Permission denied: mod_fcgid
  2. brpc编译运行
  3. window_onload和body_onload
  4. apollo 部门管理
  5. placehold.it-在线图片生成器
  6. 关于.net4.0中的Action委托
  7. 转载:10+ handy and reusable jQuery code snippets
  8. jmeter-02 JMeter 生成HTML性能报告
  9. python报错:TypeError: 'int' object is not subscriptable
  10. SPOJ MYQ10 (数位DP)