感谢大佬:https://www.cnblogs.com/qiluboy/p/5308310.html

Android中back键和home键的区别:
back键
Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来, 销毁当前Activity。当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有 Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.

home键
Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被 隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入, 会直接显示程序栈中最上层的Activity。

back键默认把当前Activity给finish,home键只是把Activity给onStop.

实现按Home键时隐藏程序的效果:
1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键
2:Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可

public void onBackPressed() {// super.onBackPressed();这句话一定要注销,不然又去调用默认的back处理方式了Intent intent=new Intent();intent.putExtra("data_return", "相信自己");setResult(RESULT_OK, intent);}

感谢大佬:https://blog.csdn.net/cl769796350/article/details/51595836

补充:Android如何只显示一次启动页

比如QQ,按返回键后再进入,就不会出现启动页,除非你把应用kill掉,或者后台清理掉。
方法很简单,只要重写onBackPressed()方法:

@Override
public void onBackPressed() {//super.onBackPressed();//句话一定要注销,不然又去调用默认的back处理方式了//隐式意图-跳转主界面Intent intent = new Intent(Intent.ACTION_MAIN);//如果是不同应用,则创建新栈,反之不创建intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);
}

多人使用startActivity时候,会碰到如下的异常:
Caused by: Android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
都知道,Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task(编者按:参见一.2.的编者按),遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是:Java代码中加一个flag,即intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。这样就可以在新的task里面启动这个Activity了。

Android返回键相关推荐

  1. Weex控制Android返回键解决方案

    正在深入倒腾weex,希望可以将weex用在项目中.这里找出了weex控制Android返回键的方法. 需求 项目使用的是Vue+VueRouter的单页应用来写Weex的,现有以下需求. 当页面不在 ...

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

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

  3. h5制作app,处理跳转翻页动画效果及android返回键路由跳转问题

    在h5制作的app中,设计路由跳转及跳转翻页动画是最必要的.其中有很多需要注意的问题,分享下小编的处理方式~ 一.翻页效果 首先,跳转翻页动画的监控,因为小编是用vue学的,所以在app.vue中监控 ...

  4. Flutter针对Android返回键回到桌面最靠谱的方法

    Flutter针对Android返回键回到桌面最靠谱的方法 初衷:看了网上五花八门的方法改什么MainActivity和增加一个Java类,这简直让没有接触过安卓的前端一头雾水,咱搞flutter就是 ...

  5. android返回键方法,Android按返回键(后退键)Back键事件捕获的两种方法

    package zhangphil.back; import android.support.v7.app.ActionBarActivity; import android.util.Log; im ...

  6. android 返回键退出程序了吗?

    我在一个Activity中启动一个Service. Service每一秒打印当前时间. 服务启动后,在Activity上按了一下返回键. 这时候回到Android桌面了.看不到Activity. 可是 ...

  7. Android 返回键的处理

    多网友不明确怎样在Android平台上捕获Back键的事件.Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台.而回到桌面的尴尬情况,在Android上有两种方法来获取该 ...

  8. Cocos2dx 响应Android返回键和Menu键

    1.在layer中调用: setKeypadEnabled(true);//设置相应按键消息 layer中重写以下两个方法: virtual void keyBackClicked(); //响应返回 ...

  9. android返回键webview返回,Android WebView 物理返回键遇到重定向处理

    问题出现的场景很常见,比如webview 先加载一个oauth url,成功后重定向到url_b.那个按物理返回键的时候webview会goBack 到过度的oauth url,马上又被重定向到url ...

最新文章

  1. 云南“爆款”景区相继停业整顿 旅游大省为环保让路
  2. arguments转换为数组格式
  3. Redis教程:NoSQL键值存储
  4. 计算机在超声的应用,计算机在医学超声成像中应用.pdf
  5. 浏览器 制作---TWebBrowser 控件
  6. 毕设题目:Matlab无人机飞行作业
  7. wait()、notify()、notifyAll()原理用法详解sleep()与wait()区别
  8. centos os u盘启动盘_怎么制作linux系统安装盘,U盘启动盘
  9. linux中批量替换文本中字符
  10. 腾讯云OSS使用指南
  11. 原核DNA甲基化简述
  12. 汇编语言程序设计51单片机
  13. 手机QQ浏览器的HTML管理器,手机qq浏览器中文件管理器有哪些功能
  14. 浅谈RabbitMQ的基石—高级消息队列协议(AMQP)
  15. 华为服务器默认用户名和密码怎么修改,服务器默认用户名和密码
  16. (附源码)计算机毕业设计SSM基于web的网上订餐系统
  17. 平面设计转UI设计难吗?
  18. win7计算机 管理缺失文件夹,win7电脑文件夹选项不见了怎么解决
  19. EBS Concurrent Request Schedule Options -- fnd_conc_release_classes
  20. 关于PCB走线,铜厚与允许的最大电流之间的关系

热门文章

  1. linux下解压命令大全
  2. Mac平台配置OpenGL(glut,glew)
  3. zcu102出现运行可执行程序时出现的错误
  4. 印度尼西亚通过新区块链项目改善其航运产业
  5. 初学STM32,使用HAL库点灯全过程
  6. 中国历届亚运会成绩排名(金牌数)
  7. 网站url后带spm参数的作用
  8. 计算机总是提示网络电缆没有插,网络电缆没有插好原因与解决方法【图文教程】...
  9. 重庆兰格机械集团有限公司招聘-船讯网
  10. C++基础——向上取整/向下取整