安卓手机摁hom键会出现搜索home键返回主页面失效是为什么

Android拦截HOME按键 -
- ITeye技术网站
博客分类:
Android 拦截 HOME 按键
主要就是重写 onAttachedToWindow
() 和 onKeyDown
(...,...) 这两个方法。
前者是起到拦截作用的,后者是监听到HOME按键事件后的动作,如果没动作可以不要 onKeyDown。
还要注意,要加权限:
&uses-permission android:name="android.permission.DISABLE_KEYGUARD
"&&/uses-permission&
// 转载请注明出处: /admin/blogs/1317186
虽然网上有很多,但介绍的都不是很详细,也不算深入,我在这里研究了下,并把日志给捞了出来。
里面包括 HOME拦截, BACK拦截,打捞日志。
public void onAttachedToWindow
System.out.println("Page01 --&onAttachedToWindow");
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
public boolean onKeyDown
(int keyCode, KeyEvent event) {
System.out.println("Page01 --&onKeyDown: keyCode: " + keyCode);
if (KeyEvent.KEYCODE_HOME
== keyCode) {
System.out.println("HOME has been pressed yet ...");
// android.os.Process.killProcess(android.os.Process.myPid());
Toast.makeText(getApplicationContext(), "按了HOME 键...",
Toast.LENGTH_LONG).show();
} else if (KeyEvent.KEYCODE_BACK
== keyCode) {
System.out.println("BACK has been pressed yet ...");
//按了返回
return super.onKeyDown(keyCode, event); // 不会回到 home 页面
通过打印日志,还得出一个结论:
onAttachedToWindow() 方法只会执行一次,也就是在第一次 onResume() 之后,以后就不再执行了。
下面是我打印的日志。包含了Activity的生命周期,查看起来很方便。操作流程也就是打开一个页面,先按下HOME,弹出提示,再按下一个Button,里面是 finish()方法。
adb logcat -d -v time -s System.out:I
12-19 13:19:43.290 I/System.out(
824): Page01 --&onStart
12-19 13:19:43.290 I/System.out(
824): Page01 --&onResume
12-19 13:19:43.369 I/System.out(
824): Page01 --&onAttachedToWindow
12-19 13:19:50.959 I/System.out(
824): Page01 --&onKeyDown: keyCode: 3
12-19 13:19:50.959 I/System.out(
824): HOME has been pressed yet ...
12-19 13:22:17.999 I/System.out(
Page01 click to exit(finish)
12-19 13:22:18.079 I/System.out(
824): Page01 --&onPause
12-19 13:22:18.590 I/System.out(
824): Page01 --&onStop
12-19 13:22:18.590 I/System.out(
824): Page01 --&onDestroy
以下是进了第一个页面,再进第二个页面,再回到第一个页面,再按HOME按键。正常拦截到。
adb logcat -d -v time -s System.out:I
12-19 13:42:09.900 I/System.out(
852): Page01 --&onStart
12-19 13:42:09.910 I/System.out(
852): Page01 --&onResume
12-19 13:42:09.969 I/System.out(
852): Page01 --&onAttachedToWindow
12-19 13:42:19.659 I/System.out(
Page01 click to page02
12-19 13:42:19.721 I/System.out(
852): Page01 --&onPause
12-19 13:42:19.990 I/System.out(
Page02 --&onStart
12-19 13:42:19.990 I/System.out(
Page02 --&onResume
12-19 13:42:20.430 I/System.out(
852): Page01 --&onStop
12-19 13:42:29.149 I/System.out(
Page02 click to page01 (finish)
12-19 13:42:29.229 I/System.out(
Page02 --&onPause
12-19 13:42:29.349 I/System.out(
852): Page01 --&onStart
12-19 13:42:29.349 I/System.out(
852): Page01 --&onResume
12-19 13:42:29.752 I/System.out(
Page02 --&onStop
12-19 13:42:29.752 I/System.out(
Page02 --&onDestroy
12-19 13:42:45.779 I/System.out(
852): Page01 --&onKeyDown: keyCode: 3
12-19 13:42:45.779 I/System.out(
852): HOME has been pressed yet ...
下载次数: 275
浏览 19140
[u][/u][i][/i][/b][b][/b][b][/b][b][/b][b][b][/b]
不知 你为何屏蔽Home键?解决什么方面的问题?
现在我有一种场景: 按下Home键后 会调用surfaceDestroyed,Android会进入到初始界面,然后长按Home键才能回到应用。但是这时的surface又重新创建。
我想要的效果是surface不重新创建 。 想用拦截Home键事件的方式解决 不知道是否可行
拦截HOME是因为项目中有需求提到按了HOME回到主页面,但程序要加个图标在状态栏。
surfaceDestroyed,里面可以加个判断,如果是home返回,就不执行了。home本身默认就不会引起Activity.onDestory()
浏览: 48583 次
来自: 深圳
[*][url][/url][flash=200,200][/ ...
有人能详细一点吗?
写的挺好的,我也看了这篇文章 有几个问题
这个getConte ...
楼主,我只想拦截home键,不想屏蔽它,要怎么改啊?
latty 写道不知 你为何屏蔽Home键?解决什么方面的问题 ...通常安卓手机长按home键可以显示正在运行的程序 为什么我新买的htc长按home键只会打开小hi_百度知道
通常安卓手机长按home键可以显示正在运行的程序 为什么我新买的htc长按home键只会打开小hi
通常安卓手机长按home键可以显示正在运行的程序 为什么我新买的htc长按home键只会打开小hi这个程序不能显示正在运行的程序?坑爹?
提问者采纳
双击home键才是。HTC比较猥琐!
非常感谢!
提问者评价
太给力了,你的回答完美解决了我的问题!
其他类似问题
为您推荐:
其他4条回答
是当前正在运行的前台程序,导致你当前无法关闭:这不是最近使用程序列表我可以非常清晰地回答你的问题,因为QQ会开启很多后台,也不是后台程序,并且在关闭程序后起到一个缩略图的作用。至于QQ是无法从这里关闭的
root后,钛备份禁用就可以了😁
试试长按home键旁边的菜单键,有些手机就是那样
华为的也是
htc的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁取消Home键 Android 5.0或迎来大变化|Android|按键|系统_手机_新浪科技_新浪网
取消Home键 Android 5.0或迎来大变化
  从今年年初开始,大量安卓新机均搭载最新的安卓4.4系统。虽然从安卓2.0时代到安卓4.0时代外观和操作都没有产生太大的风格变化,但是增加的ATR模式还是对机身的性能提升显著的。而近日有传闻称,安卓5.0将对手机的UI和操作进行大调整。
  该消息最先由外媒曝光,根据内部员工表述,Android 5.0将弃用现在的虚拟主页键,取而代之的是以Google为名称的按键,主要功能依旧为搜索服务。另外,在取消虚拟的Home键后,谷歌将采用“从多任务界面向左滑”的手势操作来完成返回主界面的动作。
▲全新的三个虚拟键 功能似乎和本土化有着不少差异
  当然,我们并不能确定这一最新的操作系统代号是否为安卓5.0,毕竟谷歌已经不只是一次在系统版本这种事情上和大家打太极了。另外,根据安卓平均9个月左右就推出一次打的系统更新的风格,距离此次的系统更新应该不会太久了。
  另外除了UI操作上的改变,此次安卓更新还将增加更多的功能,主要目的则是为以后的可穿戴设备提供更好的支持。譬如支持Android Wear可穿戴设备相关的新应用,就很有可能在此次更新中和诸位见面。
&&|&&&&|&&&&|&&
您可通过新浪首页顶部 “”, 查看所有收藏过的文章。
,推荐效果更好!
看过本文的人还看过

我要回帖

更多关于 home键摁不动 的文章

 

随机推荐