Android点击两次返回键退出程序

Android应用中退出应用程序通常有两种做法,一种是使用选择对话框询问用户是否退出应用程序,另外一种是快速点击返回按钮两次然后退出应用。其中第二种实现方式较为普遍,而且我个人认为这种方式用户体验性要好点。下面,我介绍两种常用的点击两次返回退出应用的实现方式。
1. 通过标识变量进行控制。首先定义一个布尔变量,赋初始值false。然后监听手机返回按钮,当点击返回按钮时,如果该布尔变量值为false,则把这个变量置为true;如果该变量为true,则退出程序。最后定义一个时间任务,2秒执行一次,如果布尔变量为true,则重置为false。这里定义一个循环周期为2秒的任务是为了达到快速点击两次的效果。
这样,在第一次点击返回按钮时,仅仅改变布尔值变量,而不会退出,第二次点击才会退出。如果用户点击了一次,那么2秒之后布尔变量又被重置为false,只有2秒内的两次点击才会退出程序。代码如下:

 
 
  1. private static Boolean isQuit = false;
  2. private Timer timer = new Timer();
  3. @Override
  4. public void onBackPressed() {
  5. if (isQuit == false) {
  6. isQuit = true;
  7. Toast.makeText(getBaseContext(), "再按一次返回键退出程序", Toast.LENGTH_SHORT).show();
  8. TimerTask task = null;
  9. task = new TimerTask() {
  10. @Override
  11. public void run() {
  12. isQuit = false;
  13. }
  14. };
  15. timer.schedule(task, 2000);
  16. } else {
  17. finish();
  18. System.exit(0);
  19. android.os.Process.killProcess(android.os.Process.myPid());
  20. }
  21. }
  1. 通过两次点击返回按钮时的时间间隔进行判断。这种实现方式主要是用第二次点击返回按钮时的时间减去第一次点击的返回按钮时的时间,看这个时间差是否大于2秒,如果大于2秒则提示需要再点击一次才能退出,如果时间差小于等于2秒,则退出应用,实现代码如下:
       
       
    1. private long exitTime = 0;
    2. @Override
    3. public void onBackPressed() {
    4. if(System.currentTimeMillis() - exitTime > 2000) {
    5. Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
    6. exitTime = System.currentTimeMillis();
    7. } else {
    8. finish();
    9. System.exit(0);
    10. android.os.Process.killProcess(android.os.Process.myPid());
    11. }
    12. }

我个人认为第二种实现方式更简单,更好理解,推荐使用这种实现方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值