android中按两次返回键返回桌面或退出程序
实现的基本原理
- 当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
- 在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在3000毫秒(3秒)后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法。
需求:
1. 不退出程序,只是返回桌面
public class MainActivity extends AppCompatActivity implements View.OnClickListener{// 定义一个变量,来标识是否退出private Boolean isExit = false;@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getWindow().setStatusBarColor(Color.parseColor("#e00840"));setContentView(R.layout.activity_main);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode == KeyEvent.KEYCODE_BACK){exit();return false;}return super.onKeyDown(keyCode, event);}public void exit(){if (!isExit) {isExit = true;Toast.makeText(getApplicationContext(),"再按一次返回键退出程序",Toast.LENGTH_SHORT).show();//利用handler延迟发送更改状态信息,3000==3mHandler.sendEmptyMessageDelayed(0, 3000);} else {//在后台运行程序,不退出程序,只返回桌面 wang 9/28Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);}}Handler mHandler = new Handler(Looper.getMainLooper()) {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);isExit = false;}};
}
2.退出程序
步骤是一样的,只需把下面这段代码
//在后台运行程序,不退出程序,只返回桌面 wang 9/28Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);
换成下面这样就可以了
finish(); //结束程序System.exit(0); //退出程序
大家可以去试下,有什么问题可以一起交流噢
android中按两次返回键返回桌面或退出程序相关推荐
- Android Native APP开发笔记:双击返回键退出应用单击返回键返回桌面
文章目录 目的 基础说明 双击返回键退出应用 单击返回键回到桌面 总结 目的 双击返回键退出应用 很早之前就是Android中非常常见的一种功能,而目前好多安卓应用为了应用常驻都改为使用 单击返回键返 ...
- Flutter针对Android返回键回到桌面最靠谱的方法
Flutter针对Android返回键回到桌面最靠谱的方法 初衷:看了网上五花八门的方法改什么MainActivity和增加一个Java类,这简直让没有接触过安卓的前端一头雾水,咱搞flutter就是 ...
- Android 取消返回键返回事件,返回桌面,再按一次退出程序,双击事件
mainactivity返回桌面代码: activity下添加如下代码即可: @Override public void onBackPressed() {Intent home = new Inte ...
- Android实现点击返回键返回桌面而不是退出程序
有时候我们的应用我们希望他点击一次返回键的时候不是退出应用而是返回到桌面,比如像QQ和微信等聊天软件,在主界面点击返回键的时候不是退出应用而是返回到桌面,那么怎么能够实现这种需求呢?其实也很简单,只需 ...
- 手机端在不同手机上的返回键返回位置
手机端在不同手机上的返回键返回位置 在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面或执行一些其它操作的 需求,那在代码中怎样监听当 ...
- android 图像对比,Android中比较两个图片是否一致的问题
在Fragment界面中,设置两个图片一致如下: 默认设置图片为: binding.ivArrow.setImageResource(R.drawable.icon_down); 先获取默认图片,再和 ...
- 【Android 小功能】双击返回键返回桌面(进入后台),再次进入不加载启动页,物理键双击退回桌面
目前很多 APP 点击返回键(或者左滑)返回桌面,都是不退出 APP,只是进入后台,再次进入 APP 回到之前的页面,不用刷新或者重新创建.自己也觉得这样用户体验会好很多,虽然有一个弊端就是不结束进程 ...
- Android返回桌面代码,安卓 双击返回键 返回桌面
早就有了双击返回键退出程序的需求,现如今或许有些需求是要返回桌面,而不是退出程序,那么改一些就能实现功能: (function($){ var old_back = $.back; var backB ...
- 实现qq中按返回键返回桌面不退出程序
在实际应用中,很可能我们希望自己的app在按下返回键的时候并不退出,而是像按home键一样仅仅返回桌面,而程序仍然在后台运行着.要怎么实现这个效果呢?很简单,只需要重写一下onBackPressed方 ...
最新文章
- python xlwings下载_Python学习随笔:使用xlwings读取和操作Execl文件
- 【模型解读】从2D卷积到3D卷积,都有什么不一样
- 从零开始一步一步搭建Ubuntu Server服务器、修改数据源、安装Docker、配置镜像加速器、Compose部署Gitlab服务
- Eclipse使用mybatis generator自动生成代码
- #{}与${}的区别
- 使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题
- 【SPSS】软件介绍
- 数值分析(1)-绪论:误差
- sql用java做界面设计_My Sql作为数据库,java作为应用程序?
- javascript函数的参数类型
- 撤销excel工作表保护
- 2017计算机应用基础实践,计算机应用基础试题及答案
- 计算机信息系统集成高级工程师,软考信息系统项目管理师(高级资格/高级工程师)简介...
- php的ct表现,巨大垂体腺瘤(Pituitary adenoma)CT病例图片影像诊断分析
- 想入门自学编程,应该怎么开始?
- python accessiblechildren用法_python类继承用法实例分析
- 【人工智能 AI】机器学习快速入门教程(Google)
- 手写HashMap,快手面试官直呼内行
- 为什么放弃Vim而选择Neovim?
- 初识设计模式 - 解释器模式