Level5以上(包含)中,Activity类中有如下方法:
public void onAttachedToWindow ()
Since: API Level 5
Called when the main window associated with the activity has been attached to the window manager. See View.onAttachedToWindow() for more information.
- private?boolean?catchHomeKey?=?false;??
- ????@Override??
- ????????public?void?onAttachedToWindow()?{??
- ????????????????//?TODO?Auto-generated?method?stub??
- ????????????if(catchHomeKey)?{??
- ????????????????????this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);??
- ????????????}??
- ????????????????super.onAttachedToWindow();??
- ????????}??
- ????????@Override??
- ????????public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{??
- ????????????????//?TODO?Auto-generated?method?stub??
- ????????????????if(keyCode?==?KeyEvent.KEYCODE_HOME)?{??
- ????????????????????????Log.e(TAG,?"Home?key?down");??
- ????????????????}??
- ????????????????return?super.onKeyDown(keyCode,?event);??
- ????????}?
- 重写Activity中的onAttachedToWindow方法,设置Type,就能捕获到Home键。
当不需要捕获时,删除setType这一行就OK
?