1

我知道我不能像使用后退按钮那样覆盖主页按钮。但是如果按下主页按钮,android系统可以触发事件吗?我想捕捉这个动作,以便在用户按下主页按钮时显示警告消息。我研究了几个选项,最明显的一个,对于初学者来说是覆盖主页按钮

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        // action goes here
    } else {
        return super.onKeyDown(keyCode, event);
    }
}

但这不起作用,我完全意识到这一点。

Activity一旦当前完成,将调用 onPause 方法。Activity当用户在我的应用程序中更改时,也会调用此方法。那么当他按下主页按钮时,我是否可以向用户显示一个通知框?

提前致谢

4

2 回答 2

2

实际上,它不可能像其他人一样捕获主页按钮按下事件,这是保护用户的功能。

但是对于您的情况有一个技巧

@Override
public void onAttachedToWindow()
{  
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);     
    super.onAttachedToWindow();  
}

onAttachedToWindow

视图附加到窗口时调用

你可以阅读Activity Lifecycle这个 hack 是如何工作的。

此外,这里有证据表明这种方法有效。

于 2012-11-29T09:57:15.140 回答
2
@Override
    protected void onUserLeaveHint() {
        // TODO Auto-generated method stub
        super.onUserLeaveHint();
    }

这也可以帮助

于 2012-11-29T10:40:22.487 回答