当用户按下主页按钮时通知

时间:2012-11-29 09:47:28

标签: android

我知道我不能像使用后退按钮那样覆盖主页按钮。但是如果按下主页按钮,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时,也会调用此方法。那么当他按下主页按钮时,我可以向用户显示通知框吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

实际上,无法像其他人一样抓住主页按钮按下事件,这是一项保护用户的功能。

但是你的情况有一个 hack

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

onAttachedToWindow

  

视图附加到窗口

时调用此方法

您可以阅读Activity Lifecycle此黑客的工作原理。

此外,here is the evidence显示此方法有效。

答案 1 :(得分:2)

@Override
    protected void onUserLeaveHint() {
        // TODO Auto-generated method stub
        super.onUserLeaveHint();
    }

这也可以帮助