android 捕捉home键

 android4.0以下 可用

 privatebooleancatchHomeKey = false;  

public void onAttachedToWindow()   

    {     

       if (!catchHomeKey) {  

            this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  

        }  

        super.onAttachedToWindow();  

    }   然后再在

onKeyDown方法中捕获

public boolean onKeyDown(int keyCode, KeyEvent event) {

     if (keyCode==KeyEvent.KEYCODE_HOME) {

          Toast.makeText(this, "你点击了HOME键", Toast.LENGTH_LONG).show();  

      }

       return super.onKeyDown(keyCode, event);

}

还需要加权限

<uses-permissionandroid:name="android.permission.SYSTEM_ALERT_WINDOW"/>

然而对于4.0以上的 我也没有找到方法,不过因为我的要求不是很复杂 通过曲线方式实现

根据activity的声明周期 当按下Home键时 会依此执行onPause()->onStop()方法,并没有将activity销毁 当再次打开activity时会依此执行onRestart()->onStart()->onResume()方法,所以我只需要将我的操作放在onPause()方法中就可以了,

posted @ 2013-05-20 14:47  halfapple--yao  阅读(177)  评论(0编辑  收藏  举报