Android监听home键,亲测

来源:互联网 发布:所有a股票数据库 编辑:程序博客网 时间:2024/05/16 06:59
在2.3版本以下重写下面方法就能重写home键
public void onAttachedToWindow() {
      this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
      super.onAttachedToWindow();
}
在4.0以上的版本中需要利用以下方法屏蔽和重写Home键,代码如下:
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事件即可。
@Override
      public boolean onKeyDown( int keyCode, KeyEvent event) {
             // TODO Auto-generated method stub
             if (keyCode == event. KEYCODE_HOME) {
                   return true;
            }
             return super.onKeyDown(keyCode, event);

      }

PS:

在AndroidMainfest.xml需要加权限:  
<uses-permission Android:name = "android.permission.DISABLE_KEYGUARD"/><!-- 屏蔽HOME键需要的权限 -->

在配置文件中,在你使用了Notification的activity中加一个属性 android:launchMode="singleInstance"//我加在了android:name=".MainActivity"下面


但是,home键屏蔽后,back键的onkeydown方法就会有冲突,屏蔽系统返回键就用到了 下面方法:
@Override
    public void onBackPressed() {
        return;
    }

0 0
原创粉丝点击