android2.3及其以上的版本下监听Home键
----------------------不修改源码
相信大家有时会因有一些特定功能需要监听android手机的home键,但是android在4.0及更高版本下却无法监听home键的情况而困扰。在此分享本人实现home键监听的方法,诸君参考。
1 android4.0以下的版本,监听home键:
思路:屏蔽系统Home键、监听Home键、实现你要的功能;
实现:a activity中重写onAttackManager()方法,设置window的类型。
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
b 重写onKeyDown(),处理Home键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(KeyEvent.KEYCODE_HOME==keyCode){
//你要实现的功能 注意权限
}
return super.onKeyDown(keyCode, event);
}
2 android4.0及以上版本监听home键:
思路:activity生命周期中拦截home响应后退出页面的处理。
实现:activity中设置响应home键的变量、重写onUserLeaveHint()、实现你要的功能;
a 设置全局静态变量isHomeKeyDown(仅参考);
b 重写onUserLeaveHint(),处理home键
@Override
protected void onUserLeaveHint() {
if(isHomeKeyDown){
//你的处理
}else{
//系统自己默认处理
super.onUserLeaveHint();
}
}
到此,大家通过这2种方式,即可实现对home键的监听处理。