Android实现双击返回键退出应用实现方法详解

Android实现双击返回键退出应用实现方法详解,第1张

概述Android实现双击返回退出应用实现方法详解 前言 现在市面上很多应用都会有当用户按返回键的时候提示用户:再按一次将退出应用的提示,也就是双击双击返回键退出应用,接下来我们就用几种办法来实现这个功能 效果图 实现 第一种办法 响应Activity的 onKeyUp事件,两次点击时间大于2秒钟就不响应,小于2秒钟就退出程序 代码: //记录用户首次点击返回键的时间 private long firstTime = 0; /** * 第一种解决办法 通过监听keyUp * @param keyCode * @param event * @ret

前言

现在市面上很多应用都会有当用户按返回键的时候提示用户:再按一次将退出应用的提示,也就是双击双击返回键退出应用,接下来我们就用几种办法来实现这个功能

效果图

实现

第一种办法

响应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  */ @OverrIDe public 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,2000);    return true;   } else {    this.finish();    System.exit(0);   }  }  return super.onKeyDown(keyCode,event); }

OK,到此就结束了,原理都差不多。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

总结

以上是内存溢出为你收集整理的Android实现双击返回键退出应用实现方法详解全部内容,希望文章能够帮你解决Android实现双击返回键退出应用实现方法详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1145746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存