实验几次之后(android4.1 和android4.2)发现在单个的activity里面有以下几个方法可以使用:

方法1:onSaveInstanceState方法

下面这个方法可以处理home的监听问题。

protected void onSaveInstanceState(Bundle outState)  

但这个方法不是很好,不推荐

方法2:onUserLeaveHint方法

@Override
protected void onUserLeaveHint() {
Log.d("aeon","onUserLeaveHint");
super.onUserLeaveHint();
}

这个方法会在onSaveInstanceState之前执行,根据api的解释,这个方法还比较合适的。

方法3:ACTION_CLOSE_SYSTEM_DIALOGS

在使用广播监听方面可以使用ACTION_CLOSE_SYSTEM_DIALOGS

  

//注册Receiver
HomeKeyEventBroadCastReceiver receiver = new HomeKeyEventBroadCastReceiver();
registerReceiver(receiver, new IntentFilter(
Intent. ACTION_CLOSE_SYSTEM_DIALOGS));

方法4:framework PhoneWindowManager.java 处理

想要完全监听home键需要在framework层去处理。

/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

里面去修改private void handleLongPressOnHome() 这个方法。

只要把handleLongPressOnHome里面做出相对应的处理就ok

【Android】Android处理Home键方法小结的更多相关文章

  1. Android处理图片OOM的若干方法小结 (推荐)

    众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定).因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片.音频文 ...

  2. Html5 监听拦截Android返回键方法详解

    浏览器窗口有一个history对象,用来保存浏览历史. 如果当前窗口先后访问了三个网址,那么history对象就包括三项,history.length属性等于3. history对象提供了一系列方法, ...

  3. android 点击返回键退出程序的方法

    android 点击返回键退出程序的方法 第一种: 再按一次返回键退出程序 private long exitTime = 0; @Override public boolean onKeyDown( ...

  4. android 实现返回键执行home键方法

    在公司的产品开发,中老板很是执着于,不要看到启动界面,但是又不想去掉启动界面. so 实现返回键执行home键方法. public boolean onKeyDown(int keyCode, Key ...

  5. Android监听返回键、Home键+再按一次返回键退出应用

    Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME @Override public boolean onKeyDown( ...

  6. Android应用中返回键的监听及处理

    MainActivity: package com.testnbackpressed;  import android.os.Bundle;  import android.view.KeyEvent ...

  7. Android之ContextMenu的使用方法以及与OptionMenu的区别

    >> ContextMenu是android的context menu上下文菜单,选择某项VIEW后长按menu键,就会显示出来.比如EditeText就可以通过长按来弹出拥有“cut”, ...

  8. Android应用中Back键的监听及处理

    MainActivity如下: package cn.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent; ...

  9. android点击返回键,如何做到不destory当前activity,只是stop。重新返回该activity的 时候可以直接使用,不需要创建新的activity实例

    问题描述,如题目: android点击返回键,顺序执行 pause,stop,destory. 以至于想重新进入这个activity的时候还要重新执行onCreate()方法,那么如何解决不再重新执行 ...

随机推荐

  1. linux系统常用运维命令

    目录/文件处理命令 mkdir dirname         创建文件夹 mkdir -p /tmp/a/b         递归创建目录 rm -rf dirname         删除目录及内 ...

  2. NDK历史版本下载方法

    再比如说,你要下载Android NDK, Revision 8b ,只要下面链接就可以了: http://dl.google.com/android/ndk/android-ndk-r8b-Linu ...

  3. ansible和python的zabbix_api批量添加rsync服务的监控

    一.正常的处理流程: 1.添加zabbix用户对rsync程序的sudo权限,且不需要输入密码 # visudo即在/etc/sudoers配置文件最后添加如下内容 Defaults:zabbix ! ...

  4. hue报错StructuredException: timed out (code THRIFTSOCKET): None的处理

    通过hue的web界面进行hive的sql查询,无法显示结果并报错timeout 报错如下:[28/Jul/2017 11:23:29 +0800] decorators ERROR error ru ...

  5. LabVIEW中下拉列表和枚举的区别(两点)

    第一:如图,在表示法上,下拉列表表示的数据范围要大,枚举只能是U32,U16, U8 第二:在vi的动态调用过程中,常用下拉列表,因为枚举控件不能动态的增加或者减少项目,而下拉列表则可以.

  6. poll & select

    //todo /* * copied from http://devarea.com/linux-io-multiplexing-select-vs-poll-vs-epoll/#.W1GZ0vkzZ ...

  7. HDU 5288 OO’s Sequence

    题意: 给你一个序列, 有一个函数 F(L,R) 其中 ai 均不能 被 aL - aR整除的  函数值是这个ai个数 思路 : 反过来求 满足这样的条件的 ai 的区间,然后求和 #include& ...

  8. Laravel-Excel 导入 Excel 文件----为什么只获取到最后一行数据?

    ### 今天使用了Laravel-Excel 到类文件,想做一个excel  文件到导入和导出,但是看了 官方到文档示例,自己做了一下,发现 只取到到最后一行到数据, 有点摸不着头脑! 网上找了一下, ...

  9. Laravel 5.2 错误-----ReflectionException in compiled.php line 8572: Class App\Http\Controllers\Apih5\ZhaoshangController does not exist

    测试的时候,报错了!想不到找了半天的问题,居然是个低级错误. <?php namespace App\Http\Controllers\Apih5; use Illuminate\Http\Re ...

  10. VI编辑器、ipython、jupyter及进程知识总结

    一.VI编辑器 1.三种模式 一般模式(normal mode 默认) 插入模式(insert mode) 末行模式(last line mode) 2.模式切换 一般模式-------------- ...