Android项目中退出程序的方式有多种多样,但是基本的思想大致分为两种:1.通过finish()方法直接退出程序;2.模拟Home键操作退出程序。

如果使用第一种方式finish()方法直接退出程序,那么当用户再次进入应用程序时,需要重新经过Splash、Advertisement等页面后,进入主界面并且需要重新请求数据。用户体验不好,并且浪费了用户的流量,因此不推荐使用。

如果使用第二种方式模拟Home键操作退出程序,那么当用户再次进入应用程序时,就不需要重新经过Splash、Advertisement等页面,而是直接进入主界面并且不需要重新请求数据。用户体验好,并且避免了浪费用户流量的行为,推荐使用。

下面直接上代码:

1.模拟Home键操作退出程序

private long mExitTime;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if ((System.currentTimeMillis() - mExitTime) > 2000) {ToastUtil.makeText(context, "再按一次回到桌面");mExitTime = System.currentTimeMillis();} else {//模拟Home键操作Intent intent = new Intent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);}return true;}//拦截MENU按钮点击事件,让它无任何操作if (keyCode == KeyEvent.KEYCODE_MENU) {return true;}return super.onKeyDown(keyCode, event);}

2.finish()方法直接退出程序

private long mExitTime;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if ((System.currentTimeMillis() - mExitTime) > 2000) {ToastUtil.makeText(context, "再按一次退出程序");mExitTime = System.currentTimeMillis();} else {finish();}return true;}//拦截MENU按钮点击事件,让它无任何操作if (keyCode == KeyEvent.KEYCODE_MENU) {return true;}return super.onKeyDown(keyCode, event);}

---------------------------------------------------------------------------------------------------------------------------

早计划,早准备,早完成。 欢迎关注!交流!Star!

GitHub:https://github.com/wangyang0313

微信公众号:一个灵活的胖子MrWang

简书:https://www.jianshu.com/u/e5e733d79b96

Android 再按一次退出程序(模拟Home键退出)相关推荐

  1. android 再按一次退出程序

    今天也是实在没有什么可以写的内容,不过还是想保持写博客的习惯,所以在网上查找了部分资料,决定写android 按两次back键退出app,这个功能很多app都有实现,而且很简单. 1.android中 ...

  2. Android Native APP开发笔记:双击返回键退出应用单击返回键返回桌面

    文章目录 目的 基础说明 双击返回键退出应用 单击返回键回到桌面 总结 目的 双击返回键退出应用 很早之前就是Android中非常常见的一种功能,而目前好多安卓应用为了应用常驻都改为使用 单击返回键返 ...

  3. android 退出功能,android中activity连按两次返回键退出功能

    直接写一个基类BaseActivity.java其它Activity都继承它就可以啦package com.main; import android.app.Activity; import andr ...

  4. Android开发之”再按一次退出程序“的实现

    现在移动客户端退出程序对话框退出越来越不流行了,都开始使用连续按两次来退出,即著名的"再按一次退出程序"模式.现在就看看怎么实现的吧. @SuppressLint("Ha ...

  5. Android 取消返回键返回事件,返回桌面,再按一次退出程序,双击事件

    mainactivity返回桌面代码: activity下添加如下代码即可: @Override public void onBackPressed() {Intent home = new Inte ...

  6. 说说android下TV版本UC浏览器模拟鼠标的实现

    说说android下TV版本UC浏览器模拟鼠标的实现      无意中下载了一个TV版本的UC浏览器安装到机顶盒上,顺便体验了一把.感觉吗还行,原先以为UC浏览器会针对Android下TV的遥控器操作 ...

  7. Android Studio开发(一)模拟微信页面

    Android Studio开发(一)模拟微信页面 微信页面的简单模拟 一.任务需求 二.遇到的问题与解决方案 1. AndroidX引发出的错误 2. ImageButtion运行后无法显示图片 3 ...

  8. Android开发——手把手写APP(二)QQ退出对话框动画模拟

    运行效果图 实现代码 首先,主页面就是一个backgroud的图片,并不是真正的QQ. 主要就是这个dialog的对话框和animation的动画效果. 还是先前端,再后端的思路. 1.界面设计 这个 ...

  9. android怎么模拟返回,Android中障蔽返回键,HOME键以及模拟HOME键返回效果的方法...

    Android中屏蔽返回键,HOME键以及模拟HOME键返回效果的方法 在Android开发中,有时需要屏蔽一些实体的按键,如HOME键,返回键等实体的按键,实现的方法如下. 1. 屏蔽实体按键 屏蔽 ...

最新文章

  1. 我是如何设计 Upload 上传组件的
  2. 字符串操作、文件操作,英文词频统计预处理
  3. 数据库访问类(使用存储过程的)
  4. Serverless Kubernetes 应用部署及扩缩容
  5. GDCM:gdcm::Keywords的测试程序
  6. why my CREATE_OW will not generate OSSET entry in OB buffer
  7. 您需要了解的WordPress漏洞以及如何修复它们
  8. ORACLE HANDBOOK系列之六:ODP.NET与复杂的PL/SQL数据类型(Using ODP.NET To Deal With Complex PLSQL Data Types)...
  9. java基础--IO流之File类
  10. CentOS7防火墙管理firewalld
  11. content-providers
  12. ffmpeg一些filter用法、以及一些功能命令
  13. Eureka自我保护机制、健康检查的作用
  14. B站小甲鱼Python基础学习课堂笔记
  15. 谷粉搜搜 九尾搜索 推荐
  16. selenium 与浏览器 以及浏览器驱动版本问题
  17. 学GIS开发怎么入门,GIS专业的学生应该掌握什么知识 ?
  18. 2021-09-22 小米通信软开二面
  19. 计算机 库 英文翻译,计算机专业英文翻译
  20. 机房计算机设施建设方案,金盆小学机房建设方案

热门文章

  1. 不是华为手机可以装鸿蒙,不是华为手机,也能用上鸿蒙系统
  2. 云服务器如何安装docker?
  3. 代购服务器哪个网站好,搭建韩国代购平台网站选择哪家服务器比较好?
  4. Apollo入门课程04-感知
  5. 百度「造」什么车、微信读书「硬」变现、苹果手表「预测」新冠|极客一周...
  6. Auto Encoder(AE),Denoising Auto Encoder(DAE), Variational Auto Encoder(VAE) 区别
  7. 移植Linux-3.4.2过程学习笔记2——无法挂载根文件系统
  8. 『跟着雨哥学AI』系列之八:趣味案例——有关NLP任务数据预处理的那些事儿...
  9. Spring MVC更多家族成员----文件上传---06
  10. 使用Scratch制作打弹球游戏(五)-排名