思路:重写Activity的onKeyDown方法,判断按键是不是返回键,如果是,则再判断按下的时间和上次按下的时间之间的差值(毫秒数)是不是大于2000,如果不大于,则用finish()方法结束程序。Demo如下:

 1 import android.app.Activity;
 2 import android.os.Bundle;
 3 import android.view.KeyEvent;
 4 import android.widget.Toast;
 5
 6 public class TestActivity extends Activity {
 7         private long mExitTime;  //存在时间,初值为0,用于和当前时间(毫秒数)做差值
 8
 9     @Override
10         public void onCreate(Bundle savedInstanceState) {
11                 super.onCreate(savedInstanceState);
12                 setContentView(R.layout.main);
13
14         }
15
16     @Override
17         public boolean onKeyDown(int keyCode, KeyEvent event) {
18                 if (keyCode == KeyEvent.KEYCODE_BACK) {
19                         if ((System.currentTimeMillis() - mExitTime) > 2000) {  //mExitTime的初始值为0,currentTimeMillis()肯定大于2000(毫秒),所以第一次按返回键的时候一定会进入此判断
20 21                                 Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
22                                 mExitTime = System.currentTimeMillis();
23
24                         } else {
25                                 finish();
26                         }
27                         return true;
28                 }
29                 return super.onKeyDown(keyCode, event);
30         }
31 }

转载于:https://www.cnblogs.com/jiayongji/p/5374088.html

最新文章

  1. NAR:antiSMASH数据库2—次级代谢物基因簇预测
  2. android studio 打开github开源代码
  3. 入行Python需要看的4本书推荐
  4. oracle rac理解和用途扩展
  5. 【转】5.2高性能IO模型浅析
  6. linux maven安装
  7. LintCode2016年8月8日算法比赛----子树
  8. Machine Learning---LMS 算法
  9. vim编辑时遇到E325: ATTENTION Found a swap file by the name ./.backu.sh.swp错误代码的解决办法
  10. 单片机c语言 arduino,单片机C语言程序设计实训100例——基于Arduino+Proteus仿真
  11. C/C++二路归并排序
  12. lpop 原子_这个知识孩子掌握了吗?初中化学原子的结构知识梳理
  13. VMWare 16 pro虚拟机无法开启,打不开磁盘“E:\ubuntu16.04.vmdk”或它所依赖的某个快照磁盘,显示模块“Disk”启动失败
  14. 大神面试心法教你沉着应对大小公司的笔试面试
  15. OceanBase | 一文了解OBCA认证内容
  16. 基于android的校友帮平台系统
  17. freeswitch通过limit限制cps
  18. python_matplot_图片批量保存
  19. 第三方直播平台都有哪些
  20. 音视频码率,采样率,帧率基础知识

热门文章

  1. python 十进制与二进制以及位运算
  2. js中的Object.create(null) 和 {} 的区别
  3. 重学java基础第二十一课:编译型和解释型
  4. 前端学习(2932):vue中的v-show
  5. [html] HTML5如何使用音频和视频?
  6. [css] 用CSS绘制一个红色的爱心
  7. [css] 你是如何规划响应式布局的?
  8. 前端学习(2748):uniapp创建项目和演示
  9. 工作150:1、根据后台传值动态显示开关状态及文字说明(0为文字,1为图标)
  10. 工作总结18:Vuex处理思路