Android 两种方法实现长按返回健退出

发布时间 - 2026-01-10 22:55:14    点击率:

 Android 长按返回健退出

背景

平常比较常见的都是一定时间间隔内按两次返回键来退出应用,并且第一次点击会有相应的提示,网上资料比较多,这里写一下,长按返回键退出。

实现

实现的方案常用的有两个:

重写dispatchKeyEvent(KeyEvent event)方法

重写onKeyDown(int keyCode, KeyEvent event)方法

方案一

 @Override
  public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.isLongPress()) {
      //do something else
      System.exit(0);
      return true;
    }
    return false;
  }

代码很简单,如果按下了返回键且是长按,则退出。

方案二

  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
      Toast.makeText(this, "长按返回键退出", Toast.LENGTH_SHORT).show();
    } else if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 2) {
      //do something else
      System.exit(0);
    }
    return false;
  }

推荐本方案,可以修改else if中event.getRepeatCount()==的次数来修改长按的时间,event.getRepeatCount() 为0时代表单击了一次,当次数>=1时就代表长按了,值越大,说明按的时间越长。
之所以推荐本方案,因为可以在第一次点击返回键的时候提醒用户。

后记

本来准备多整理些资料一起发出来,掘金刚刚在内测发布工具,这里就手写一篇试试感觉如何,体验还是很棒的。以下是个人意见:

优点:

  • 配色漂亮
  • 界面干净,写作比较专注,适合有经验的老手
  • 响应快,对MarkDown语法的细节处理的不错

缺点:

  • 界面没有引导,新手会蒙圈吧
  • 左边的写作区的配色是暗色,没有可选性(难道根据时间换白色和黑色主题?)
  • 不支持流程图等高级功能

总的来说,基本功能都是有的,界面比较干净,这个是优点也是缺点了,相对而言,更适合把MarkDown语法熟记于心的人。

最后,来个配图看看写作界面:

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


# Android  # 长按返回健退出  # 长按返回健退出几种方法总结  # 长按返回健退出实现代码  # Android Listview中显示不同的视图布局详解及实例代码  # Android实现ImageView阴影和图层效果  # 详解Android中的MVP架构分解和实现  # android使用AsyncTask实现多线程下载实例  # android多种滑动冲突的解决方案  # 很实用的Android日期计算类  # Android实现图片上传功能  # Android 中StringBuffer 和StringBuilder常用方法  # Android获取联系人姓名和电话代码  # Android引导页面的简单实现  # android基于dialog实现等待加载框示例  # 都是  # 重写  # 的人  # 会有  # 两次  # 希望能  # 很简单  # 不支持  # 可选  # 时就  # 按下  # 越大  # 来个  # 谢谢大家  # 比较多  # 表单  # 内测  # 很棒  # 更适合  # 于心 


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


相关推荐: Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何在 React 中条件性地遍历数组并渲染元素  Java类加载基本过程详细介绍  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何快速选择适合个人网站的云服务器配置?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Python正则表达式进阶教程_复杂匹配与分组替换解析  如何实现建站之星域名转发设置?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何用5美元大硬盘VPS安全高效搭建个人网站?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Python文件异常处理策略_健壮性说明【指导】  Laravel如何处理表单验证?(Requests代码示例)  Python结构化数据采集_字段抽取解析【教程】  Laravel如何优化应用性能?(缓存和优化命令)  如何在万网主机上快速搭建网站?  移动端脚本框架Hammer.js  JavaScript常见的五种数组去重的方式  LinuxShell函数封装方法_脚本复用设计思路【教程】  如何在服务器上配置二级域名建站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  python中快速进行多个字符替换的方法小结  Linux安全能力提升路径_长期防护思维说明【指导】  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  微信小程序 闭包写法详细介绍  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何快速打造个性化非模板自助建站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  JS弹性运动实现方法分析  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  历史网站制作软件,华为如何找回被删除的网站?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  高端智能建站公司优选:品牌定制与SEO优化一站式服务  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  JS中对数组元素进行增删改移的方法总结  北京专业网站制作设计师招聘,北京白云观官方网站?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  如何快速搭建二级域名独立网站?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】