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调用而已。