在网上查的差不多就是两种方法
重写onAttachedToWindow,安卓4.0以上报错
重写onKeyDown,没用,根本监听不到home键
在2.3版本以下重写下面方法就能重写home键
1 public void onAttachedToWindow() { 2 this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 3 super.onAttachedToWindow(); 4 }
在4.0以上的版本中需要利用以下方法屏蔽和重写Home键,代码如下:
1 public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; //需要自己定义标志 2 public void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码 5 setContentView(R.layout.main); 6 }
再重写onKey事件即可
@Override public boolean onKeyDown( int keyCode, KeyEvent event) { if (keyCode == event. KEYCODE_HOME) { return true; } return super.onKeyDown(keyCode, event); }