public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码 setContentView(R.layout.main); } 再重写onKey事件即可。
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
//press home
} else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
//long press home
}
}
}
}
}以上是我监听home键的广播接收器 你看了估计就知道怎么监听了
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_HOME:
.......//添加自己的处理
return true;
}
return super.onKeyDown(keyCode, event);//如果不想让父类继续处理,直接改为return false
}
http://bbs.csdn.net/topics/390336545?page=1#post-394283462
开始发错了,在这里
http://download.csdn.net/detail/fire_fire_fire/5286015
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码
setContentView(R.layout.main);
}
再重写onKey事件即可。