全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android中捕获Home事件的终极解决方案以及最小化应用Android设计者处于安全考虑,那个home键在应用层是捕获不到的,只有修改底层的代码才可以获取其事件监听,但是修改底层对于应用开发者来说有点麻烦,那如何在Activity层监听到home键哪?先禁止Home键,再在onKeyDown里或者dispatchKeyEvent处理按键值,点击Home键的时候就把程序最小化,或者随你的需求。首先第一步:加权限禁止Home键大家不要以为添加这个权限后,所有的Activity的Home键都不可以用了,反而添加这个权限后,跟不添加是一样的效果,就是所有的Activity的Home键都没有禁止,如果你想对某个Activity禁止Home的事件,那么你只需要在某个Activity中加上此方法:Overridepublic void onAttachedToWindow() this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);super.onAttachedToWindow();这个时候,此Activity的Home键才被禁止掉,那么在此Activity中做如下操作,即可最小化应用,或者你自己添加需求的代码。Overridepublic boolean onKeyDown(int keyCode, KeyEvent event)if (event.getAction() = KeyEvent.ACTION_DOWN & keyCode = KeyEvent.KEYCODE_HOME)/ 最小化应用Intent intent = new Intent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);return true;return super.onKeyDown(keyCode, event);呵呵,至此,我高兴的很,屁颠屁颠的去测试了,先用模拟器测试没有问题,再用真机测试,我去,问题又出现了,Home事件截获不到,这是为什么啊?大家不要急,听我慢慢道来。在2.2以前的模拟器用上述方法是没有问题,但是从3.0开始后的模拟器就不行了包括真机。反正我用了几款机子测试是不行的,哪如何解决此问题哪?大家都知道点击Home触发onPause、onStop这两个方法,在模拟器测试都触发,但是一旦到真机测试有些机子都触发,但是有些机子就不触发onStop,或者如果你安装了360软件后,一般都不触发,当你从通知栏拉下后在点击又触发了onStop所以我们一般在onPause方法里截获Home事件然后处理,这种截获方式用Logcat。没错就是用Logcat.终极解决方案开始:1.首先你要在AndroidManifest.xml添加一项读取系统Log的权限2./* “logcat”不用说了吧,我们就是要监听它 * “ActivityManager” 表示监听的Tag 这里以上面点击按钮输出的LOG信息为例。* “I”表示监听的Log类型,当然这里还可以写其它类型 。VERBOSE(v) 、DEBUG(d)、 INFO(i)、 WARN(w)、 ERROR(e), 不过须要与监听的与Tag一一对称才可以。* “*:s”表示监听所有的信息,这里表示只要tag是ActivityManager ,Logcat类型为i 的 所有Log都会被获取到。* 点击Home时会触发OnPause、onStop但是在某些手机上可能触发onStop延迟或者不触发*/new Thread(new Runnable()Overridepublic void run()Process logcatProcess = null;BufferedReader bufferedReader = null;try/* 获取系统logcat日志信息 */logcatProcess = Runtime.getRuntime().exec(new String “logcat”, “ActivityManager:I *:S”);bufferedReader = new BufferedReader(new InputStreamReader(logcatProcess.getInputStream();String line;while (line = bufferedReader.readLine() != null)if (line.indexOf(“cat=ent.category.HOME“) 0)/* 这里可以处理你对点击Home的操作哦 我这里是完全退出应用*/Session.exit();catch (Exception e)e.printStackTrace();).start();到这里大家看明白了没。就是监听系统日志。手机点击HOme的日志是:Intent act=ent.action.MAIN cat=ent.category.HOME flg=010200000 cmp=com.dianxinos.dxhome/com.dianxinos.launcher2.Launcher from pid 1277模拟器是:Starting activity: Intent act=ent.action.MAIN cat=ent.category.HOME flg=010200000 cmp=com.android.launcher/com.andr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年六安裕安区单王乡招考村级后备干部5名备考题库及答案详解(名校卷)
- 2025广东广州越秀区黄花岗街道招聘辅助人员2人备考题库附答案详解(满分必刷)
- 2025年郑州高新区公开招聘100名社区工作人员备考题库含答案详解ab卷
- 5G+远程康复医患沟通互动策略
- 2025广东广州官洲街道办事处招聘雇员5人备考题库含答案详解(满分必刷)
- 2025湖南湘西自治州消防救援支队政府专职消防员招聘78人备考题库含答案详解(b卷)
- 2025甘肃陇南市徽县招聘专职社区工作者19人备考题库附答案详解(综合卷)
- 2026中国建设银行建信理财秋季校园招聘9人备考题库(深圳)及答案详解(易错题)
- 2025年杭州高新区(滨江)总工会公开招聘工会社会工作者5人备考题库及完整答案详解一套
- 2025重庆北碚区总工会社会工作者招聘9人备考题库附答案详解(综合卷)
- 王家大院课件
- 空间定位展示技术-洞察及研究
- 江苏省南京市六校联合体2024-2025学年高二下学期3月联合调研英语试题
- 静配中心感染管理制度
- 2026届新高考数学热点精准复习 分析命题走向+明确教学方向
- 理解当代中国 大学英语综合教程2(拓展版) Unit 1课件 B2U1 The path to modernization
- 塑胶模具钳工培训
- 小学五年级美术课评价体系计划
- 急性酒精中毒个案护理
- 道教协会申请管理办法
- 2025年高中英语教师招聘考试模拟试卷及答案(共三套)
评论
0/150
提交评论