Android 双击返回键退出程序的方法总结

发布时间 - 2026-01-11 01:45:02    点击率:

Android 双击返回键退出程序的方法总结

下面先说说LZ思路,具体如下:

1. 第一种就是根据用户点击俩次的时间间隔去判断是否退出程序;

2. 第二种就是使用Android中计时器(Timer),其实这俩种都差不多.

思路是有了,,,接下来要怎么开搞呢???用户点击肯定会触发相应的事件,,,我们先来看下面俩个事件的作用。。。

Activity.onKeyDown();

当某个键被按下时会触发,但不会被任何的该Activity内的任何view处理。

默认按下KEYCODE_BACK键后会回到上一个Activity。

Activity.onKeyUp():

当某个按键被按下,松开后触发,但不会被任何的该Activity内的任何view处理。

默认没有执行任何操作,只是简单的给一个false作为返回值。

So,,,接下来分别使用如上俩个方法干掉这个当年的拦路虎~

One Way:onKeyUp()

  //--------------使用onKeyUp()干掉他--------------

  //记录用户首次点击返回键的时间
  private long firstTime=0;

  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode){
      case KeyEvent.KEYCODE_BACK:
        long secondTime=System.currentTimeMillis();
        if(secondTime-firstTime>2000){
          Toast.makeText(MainActivity.this,"再按一次退出程序--->onKeyUp",Toast.LENGTH_SHORT).show();
          firstTime=secondTime;
          return true;
        }else{
          System.exit(0);
        }
        break;
    }
    return super.onKeyUp(keyCode, event);
  }

Two Way:onKeyDown()

 //--------------使用onKeyDown()干掉他--------------

  //记录用户首次点击返回键的时间
  private long firstTime=0;

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

Three Way:Timer

 @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_BACK){
      exitByDoubleClick();
    }
    return false;
  }

  private void exitByDoubleClick() {
    Timer tExit=null;
    if(!isExit){
      isExit=true;
      Toast.makeText(MainActivity.this,"再按一次退出程序--->Timer",Toast.LENGTH_SHORT).show();
      tExit=new Timer();
      tExit.schedule(new TimerTask() {
        @Override
        public void run() {
          isExit=false;//取消退出
        }
      },2000);// 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务
    }else{
      finish();
      System.exit(0);
    }
  }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # 双击返回键退出程序  # 双击退出程序的方法  # Android 单双击实现的方法步骤  # Android实现双击返回键退出应用实现方法详解  # Android双击事件拦截方法  # Android使用PhotoView实现图片双击放大单击退出效果  # Android 双击Back键退出应用的实现方法  # Android实现双击TitleBar回顶部的功能示例代码  # Android 在viewPager中双指缩放图片双击缩放图片单指拖拽图片的实现思路  # Android中双击返回键退出应用实例代码  # Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果  # Android 自定义View实现单击和双击事件的方法  # Android 屏幕双击事件的捕获简单示例  # Android 实现双击退出的功能  # Android App中实现可以双击放大和缩小图片功能的实例  # Android实现ImageView图片双击放大及缩小  # Android双击退出的实现方法  # Android双击返回键退出程序的实现方法  # 使用python编写android截屏脚本双击运行即可  # Android开发实现控件双击事件的监听接口封装类  # 按下  # 再按  # 首次  # 计时器  # 希望能  # 双击  # 谢谢大家  # 后会  # 第二种  # 第一种  # 返回值  # 判断是否  # 这俩  # 当年  # 先说说  # 肯定会  # 都差不多  # KEYCODE_BACK  # class  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信小程序 canvas开发实例及注意事项  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  网站制作壁纸教程视频,电脑壁纸网站?  如何选择可靠的免备案建站服务器?  想要更高端的建设网站,这些原则一定要坚持!  香港服务器选型指南:免备案配置与高效建站方案解析  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  EditPlus中的正则表达式实战(5)  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Android实现代码画虚线边框背景效果  网页设计与网站制作内容,怎样注册网站?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  高端建站三要素:定制模板、企业官网与响应式设计优化  如何在Windows虚拟主机上快速搭建网站?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel怎么实现模型属性的自动加密  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  微信小程序 闭包写法详细介绍  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  三星、SK海力士获美批准:可向中国出口芯片制造设备  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  如何在云主机快速搭建网站站点?  html5的keygen标签为什么废弃_替代方案说明【解答】  详解Oracle修改字段类型方法总结  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  如何在阿里云虚拟主机上快速搭建个人网站?  php json中文编码为null的解决办法  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Laravel如何使用Service Container和依赖注入?(代码示例)  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Android 常见的图片加载框架详细介绍  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何用狗爹虚拟主机快速搭建网站?  *服务器网站为何频现安全漏洞?  大连网站制作公司哪家好一点,大连买房网站哪个好?  公司门户网站制作流程,华为官网怎么做?  如何在建站主机中优化服务器配置?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?