android中得home事件app是不能捕获的,但是我们可以通过如下方法捕获它
/**
* home键的捕获,需要重写onAttachedToWindow并设置type
*/
private boolean catchHome=true;
@Override
public void onAttachedToWindow() {
if(catchHome)
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
然后在keydown方法中
public boolean onKeyDown(int keyCode,KeyEvent event){
Log.d(this, "**************keycode home", "onKeyDown");
if(keyCode==KeyEvent.KEYCODE_HOME){
Log.d(this, "**************keycode home", "KEYCODE_HOME");
}
return super.onKeyDown(keyCode, event);
}
但是捕获后会有个问题:app将不会在执行系统的home事件。
有大牛知道如何解决这个问题的话望告知