android 中拦截home键

android中拦截back键大家应该很熟练了,而且网上一搜一大片,在android中拦截home键呢?在dialog中拦截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);

没错,就和activity中一样,只不过是dialog调用而已。

你可能感兴趣的:(android 中拦截home键)