本文转自:

下面两个函数要同时使用,才能达到捕获home键的效果

// 屏蔽Home键  
   @Override  
   public void onAttachedToWindow() {  
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
        super.onAttachedToWindow();  
   }  

// 捕获home键  
   @Override  
   public boolean onKeyDown(int keyCode, KeyEvent event) {  
        switch (keyCode) {  
        case KeyEvent.KEYCODE_HOME:  
             finish();  
        }  
        return super.onKeyDown(keyCode, event);  
   }  

如果单独使用第一个函数只能达到屏蔽home键的效果,如果单独使用第二个函数不能达到捕获home键的效果,只有两个函数同时使用才能达到捕获home键的效果。

PS:系统自己对home按键在 PhoneWindowManager中做了处理,因此不会返回到上层应用,所以需先屏蔽home按键,然后再去捕获处理。