当前位置: 首页 > news >正文

Android HOME键那些事

       游戏中常常需要监听android HOME键,当HOME键下压时,往往需要做一些状态保存,音效停止等操作,那么如何做,才能监听到HOME键呢?我们知道HOME是系统键,app中无法通过onKey这些函数来处理。要妥善的处理HOME键,首先需要看看HOME键下压时,系统做了些什么。


一、HOME键之来龙去脉

请见下图:


二、app中对于HOME键广播事件的接收

首先,自定义一个BroadcastReceiver:

	class HomeKeyEventBroadCastReceiver extends BroadcastReceiver {

		static final String SYSTEM_REASON = "reason";
		static final String SYSTEM_HOME_KEY = "homekey";//home key
		static final String SYSTEM_RECENT_APPS = "recentapps";//long home key
		
		@Override
		public void onReceive(Context context, Intent intent) {
			String action = intent.getAction();
			if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
				String reason = intent.getStringExtra(SYSTEM_REASON);
				if (reason != null) {
					if (reason.equals(SYSTEM_HOME_KEY)) {
						// home key处理点
						
					} else if (reason.equals(SYSTEM_RECENT_APPS)) {
						// long home key处理点
					}
				}
			}
		}
	}


其次,生成且注册之

	receiver = new HomeKeyEventBroadCastReceiver();
	registerReceiver(receiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

这样,我们就可以在app中进行HOME键的处理了!



转载自:http://blog.csdn.net/imyfriend/article/details/8293399















相关文章:

  • 在非activity的类中调用startActivity(intent)
  • iOS中#import和@class的区别
  • Android开机自动启动程序设置 .
  • varchar与nvarchar的区别
  • Android中的资源文件
  • Java中的==和equals区别
  • iOS编程中视图控制器与视图类
  • IOS页面切换的几种方式
  • sqlite中数据类型总结
  • Android中asset文件夹和raw文件夹区别与用法
  • Android开发中进程等级相关内容
  • 如何将应用安装到/system/app下
  • 无线通信网络安全概述
  • 从Google身上可以学到的14个东西
  • 职场打拼20年悟出14句箴言:千万别把自己太当回事儿
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 2019.2.20 c++ 知识梳理
  • 230. Kth Smallest Element in a BST
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • CentOS 7 防火墙操作
  • ES10 特性的完整指南
  • ESLint简单操作
  • gops —— Go 程序诊断分析工具
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js递归,无限分级树形折叠菜单
  • js写一个简单的选项卡
  • JS学习笔记——闭包
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • oldjun 检测网站的经验
  • orm2 中文文档 3.1 模型属性
  • oschina
  • Python进阶细节
  • ReactNativeweexDeviceOne对比
  • SpiderData 2019年2月23日 DApp数据排行榜
  • windows下如何用phpstorm同步测试服务器
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 坑!为什么View.startAnimation不起作用?
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 用jquery写贪吃蛇
  • 《码出高效》学习笔记与书中错误记录
  • 【干货分享】dos命令大全
  • 2017年360最后一道编程题
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​人工智能书单(数学基础篇)
  • #大学#套接字
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (学习日记)2024.01.19
  • (转)为C# Windows服务添加安装程序
  • (转载)深入super,看Python如何解决钻石继承难题