天天看点

android 中拦截home键

1、activity拦截home

这个和别人提供的方法一样,直接在onKeyDown中判断keyCode == KeyEvent.KEYCODE_HOME是不能拦截的,需要在activity的onCreate()方法setContentView之前添加getWindow().setFlags(0x80000000,0x80000000),这样就能和监听back一样监听home了。

2、dialog拦截home

和activity一样,dialog也可以拦截home键,如下:

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {

    @Override

     public boolean onKey(DialogInterface dialog,int keyCode, KeyEvent event) {

            switch (keyCode) {

                case KeyEvent.KEYCODE_HOME:

                    return true;

             }

    return false;

    }

});

单纯这样也是不能拦截的,所以在之前再添加一句代码就行了。

dialog.getWindow().setFlags(0x80000000,0x80000000);

继续阅读