activity中捕获HOME按键

正常来说,在activity中是捕获不到HOME按键的,都被底层消化了。如果想在acivity中也能捕获HOME按键,可以通过如下方式:

在activity中重写如下方法:

@Override public void onAttachedToWindow() { // this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); super.onAttachedToWindow(); }

将TYPE设为TYPE_KEYGUARD或TYPE_KEYGUARD_DIALOG。

 

然后在onKeyUp或onKeyDown方法中捕获HOME事件就行,如下:

@Override public boolean onKeyUp(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_HOME){ //todo } return super.onKeyUp(keyCode, event); }

 

如果捕获了之后又想不捕获了让拥有权还给底层,则可以再将TYPE设为:

TYPE_APPLICATION就可以了。

 

 

你可能感兴趣的:(activity中捕获HOME按键)