home键好像监听不到吧,看下源码中的PhoneWindowManager.java有监听home键

解决方案 »

  1.   

    class InnerRecevier extends BroadcastReceiver { final String SYSTEM_DIALOG_REASON_KEY = "reason"; final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions"; final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; @Override
    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键的广播接收器   你看了估计就知道怎么监听了
      

  2.   

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
      switch (keyCode) {
         case KeyEvent.KEYCODE_HOME:
          .......//添加自己的处理
          return true;
       }
     
       return super.onKeyDown(keyCode, event);//如果不想让父类继续处理,直接改为return false
    }
      

  3.   

    不用费脑筋去思考如何监听了,一般是监听不到的,尤其是想屏蔽HOME键的同学。我修改过这个问题,在ICS之前都可以监听(不包括ICS),如果你是做手机的,你有机会修改这个,呵呵。我做过按键的自检程序,就修改的貌似PhoneWindowManager.java吧,很久之前的事情了。
      

  4.   

    demo如下,可以在点击home时执行自己的操作
    http://bbs.csdn.net/topics/390336545?page=1#post-394283462
      

  5.   

    demo如下,可以在点击home时执行自己的操作
    开始发错了,在这里
    http://download.csdn.net/detail/fire_fire_fire/5286015
      

  6.   

        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事件即可。