在網上查的差不多就是兩種方法
重寫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); }