【问题标题】:Notify when the user presses the home button当用户按下主页按钮时通知
【发布时间】:2012-11-29 18:40:22
【问题描述】:

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

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

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

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

提前致谢

【问题讨论】:

标签: android


【解决方案1】:

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

但是对于您的情况,有一个hack

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

onAttachedToWindow

视图被附加到窗口时调用

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

另外,here is the evidence 表明此方法有效。

【讨论】:

    【解决方案2】:
    @Override
        protected void onUserLeaveHint() {
            // TODO Auto-generated method stub
            super.onUserLeaveHint();
        }
    

    这也有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多