一般默认情况下,我们按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相关推荐

  1. android back键不退出程序,Android按back键不退出当前Activity

    一般默认情况下,我们按back键的时候,会执行Activity的onDestroy方法,销毁当前实例. 有些情况下,不想销毁,只是想切换到后台,即回到桌面程序.那么有两种方法可以设置,重写Activi ...

  2. 如何添加Android返回键的退出功能

    环境:Cocos2dx v3.5 经网上搜索资料知道有两种方法可以实现Android返回键的退出功能,下面分别说明. 1.修改java代码 首先,在Cocos2dx的源文件中找到Cocos2dxGLS ...

  3. Android 手机返回键 退出应用

    对于后台代码退出手机应用这块就不用介绍了,网上这种方法太多了,我来说一下纯html页面退出手机应用的解决方案 http://dcloudio.github.io/mui/javascript/#clo ...

  4. Android之back键拦截处理

    原文链接:http://blog.csdn.net/lyjit/article/details/51597160 ------------------------------------------- ...

  5. Android基础新手教程——4.1.3 Activity登堂入室

    Android基础新手教程--4.1.3 Activity登堂入室 标签(空格分隔): Android基础新手教程 本节引言: 好的,在学习了两节的Activity后相信大家已经知道怎样去使用Acti ...

  6. Android APK开发基础—— 四大组件之Activity

    Activity的启动模式 启动模式的设置 方式一:AndroidMenifest中设置: <activity android:name=".TestActivity" Ac ...

  7. android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键

    本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){         ...

  8. android 回退函数,详解React Native监听Android回退按键与程序化退出应用

    详解React Native监听Android回退按键与程序化退出应用 发布时间:2020-09-29 09:25:52 来源:脚本之家 阅读:137 作者:lqh 详解React Native监听A ...

  9. android 获取栈顶activity,Android : 如何得到Activities栈顶的Activity名称

    众所周知,Android中的任务等等都是通过栈来管理的,Activities的管理也不例外.栈这种数据结构是大家再熟悉不过了.它的先进后出特性让Android可以很容易实现从当前Activity回到或 ...

最新文章

  1. 02CSS基础选择器
  2. 【云周刊】第178期:阿里云以生态联盟推动全球市场,牵手Bolloré集团全球合作...
  3. redirect和forward的区别
  4. SpringBoot—启动原理
  5. Spring四大模块和设计模式
  6. scrollTop的兼容性小结
  7. 深入解析浅复制和深复制
  8. DIV+CSS样式表命名的规则方法
  9. BZOJ2327: [HNOI2011]勾股定理
  10. 什么是基金前端收费和后端收费
  11. 最新图解 FileZilla Server + FlashFXP 快速傻瓜式搭建FTP服务 1
  12. C语言之printf输出各种格式
  13. Radare2 框架介绍及使用
  14. appium元素坐标定位TouchAction
  15. 盘点各大互联网公司2017中秋月饼设计,你最喜欢哪一个?
  16. 第一部分 数理逻辑 第三章 命题逻辑的推理理论
  17. 【找不到与请求 URI匹配的 HTTP 资源】(转)
  18. 【好刊推荐】知名出版社影响因子7+被踢出SCI,投稿前如何选期刊?
  19. uni-app 结合云函数开发小程序博客(二):云函数实现登录注册
  20. 最新法定假日修改及2008年法定假日安排

热门文章

  1. mysql utf-8不支持生僻字_关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析...
  2. 如果解决长尾数据(样本不均衡)
  3. 周鸿伟鸿蒙系统,周鸿袆正式宣布!鸿蒙系统开源比较好,将全力支持华为新系统...
  4. tensorflow 报错 InternalError Dst tensor is not initialized
  5. MIR7/MIRO 贷项凭证/事后借记/后续贷记
  6. 如何在MATLAB上用GPU加速计算
  7. layui按钮---Layer自定义按钮,关闭弹出层/弹窗;layer自带按钮
  8. iOS 使用符号断点定位警告约束警告-[LayoutConstraints] Unable to simultaneously satisfy constraints
  9. TD源链:让区块链臻于完美
  10. 为什么Facebook需要养号?Facebook养号系统有什么作用?