Android按back键不退出当前Activity
一般默认情况下,我们按back键的时候,会执行Activity的onDestroy方法,销毁当前实例。
有些情况下,不想销毁,只是想切换到后台,即回到桌面程序。那么有两种方法可以设置,重写Activity的onBackPressed()方法,或是重写onKeyDown方法
1、使用moveTaskToBack方法:
重写onKeyDown
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ moveTaskToBack(true); return true; } return super.onKeyDown(keyCode, event);
}
重写onBackPressed
@Overridepublic void onBackPressed() {moveTaskToBack(true);}
方法:public boolean moveTaskToBack(boolean nonRoot)
activity里有这个方法,参数说明如下:
nonRoot=false→ 仅当activity为task根(即首个activity例如启动activity之类的)时才生效
nonRoot=true→ 忽略上面的限制
这个方法不会改变task中的activity中的顺序,效果基本等同于home键,都是回到桌面
应用场景:
比如有些activity诸如引导图之类的,用户在按返回键的时候你并不希望退出(默认就finish了),而是只希望置后台,就可以调这个方法
2、使用startActivity回到桌面
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ Intent i = new Intent(Intent.ACTION_MAIN); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addCategory(Intent.CATEGORY_HOME); startActivity(i); return true; } return super.onKeyDown(keyCode, event);
}
或
@Overridepublic void onBackPressed() {
// moveTaskToBack(true);Intent intent = new Intent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);}
Android按back键不退出当前Activity相关推荐
- android back键不退出程序,Android按back键不退出当前Activity
一般默认情况下,我们按back键的时候,会执行Activity的onDestroy方法,销毁当前实例. 有些情况下,不想销毁,只是想切换到后台,即回到桌面程序.那么有两种方法可以设置,重写Activi ...
- 如何添加Android返回键的退出功能
环境:Cocos2dx v3.5 经网上搜索资料知道有两种方法可以实现Android返回键的退出功能,下面分别说明. 1.修改java代码 首先,在Cocos2dx的源文件中找到Cocos2dxGLS ...
- Android 手机返回键 退出应用
对于后台代码退出手机应用这块就不用介绍了,网上这种方法太多了,我来说一下纯html页面退出手机应用的解决方案 http://dcloudio.github.io/mui/javascript/#clo ...
- Android之back键拦截处理
原文链接:http://blog.csdn.net/lyjit/article/details/51597160 ------------------------------------------- ...
- Android基础新手教程——4.1.3 Activity登堂入室
Android基础新手教程--4.1.3 Activity登堂入室 标签(空格分隔): Android基础新手教程 本节引言: 好的,在学习了两节的Activity后相信大家已经知道怎样去使用Acti ...
- Android APK开发基础—— 四大组件之Activity
Activity的启动模式 启动模式的设置 方式一:AndroidMenifest中设置: <activity android:name=".TestActivity" Ac ...
- android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键
本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){ ...
- android 回退函数,详解React Native监听Android回退按键与程序化退出应用
详解React Native监听Android回退按键与程序化退出应用 发布时间:2020-09-29 09:25:52 来源:脚本之家 阅读:137 作者:lqh 详解React Native监听A ...
- android 获取栈顶activity,Android : 如何得到Activities栈顶的Activity名称
众所周知,Android中的任务等等都是通过栈来管理的,Activities的管理也不例外.栈这种数据结构是大家再熟悉不过了.它的先进后出特性让Android可以很容易实现从当前Activity回到或 ...
最新文章
- 02CSS基础选择器
- 【云周刊】第178期:阿里云以生态联盟推动全球市场,牵手Bolloré集团全球合作...
- redirect和forward的区别
- SpringBoot—启动原理
- Spring四大模块和设计模式
- scrollTop的兼容性小结
- 深入解析浅复制和深复制
- DIV+CSS样式表命名的规则方法
- BZOJ2327: [HNOI2011]勾股定理
- 什么是基金前端收费和后端收费
- 最新图解 FileZilla Server + FlashFXP 快速傻瓜式搭建FTP服务 1
- C语言之printf输出各种格式
- Radare2 框架介绍及使用
- appium元素坐标定位TouchAction
- 盘点各大互联网公司2017中秋月饼设计,你最喜欢哪一个?
- 第一部分 数理逻辑 第三章 命题逻辑的推理理论
- 【找不到与请求 URI匹配的 HTTP 资源】(转)
- 【好刊推荐】知名出版社影响因子7+被踢出SCI,投稿前如何选期刊?
- uni-app 结合云函数开发小程序博客(二):云函数实现登录注册
- 最新法定假日修改及2008年法定假日安排
热门文章
- mysql utf-8不支持生僻字_关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析...
- 如果解决长尾数据(样本不均衡)
- 周鸿伟鸿蒙系统,周鸿袆正式宣布!鸿蒙系统开源比较好,将全力支持华为新系统...
- tensorflow 报错 InternalError Dst tensor is not initialized
- MIR7/MIRO 贷项凭证/事后借记/后续贷记
- 如何在MATLAB上用GPU加速计算
- layui按钮---Layer自定义按钮,关闭弹出层/弹窗;layer自带按钮
- iOS 使用符号断点定位警告约束警告-[LayoutConstraints] Unable to simultaneously satisfy constraints
- TD源链:让区块链臻于完美
- 为什么Facebook需要养号?Facebook养号系统有什么作用?