主页按钮之前的方法

时间:2012-12-07 22:10:35

标签: android home-button

我的Android应用程序是一个客户端,当有人单击主页按钮时,我想向服务器发送一条消息,当用户更改回应用程序时,我也想向服务器发送消息。如果我可以覆盖HOME按钮keyEvent,或任何将应用程序放入后台时将被称为 的方法,我可以发送消息并在单个中设置一个静态变量,每个都会检查一次onStart(),所以基本上我只需要以某种方式“覆盖”HOME按钮。 我尝试了以下几点:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        //...
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

它根本不起作用。我在其中设置了断点,但HOME按钮根本不会触发此方法。 (三星Galaxy Ace,android 2.2.1)。

我还尝试像这样覆盖onUserLeaveHint()

@Override
protected void onUserLeaveHint() {
    //...
    super.onUserLeaveHint();
}

但问题是,当我按下HOME按钮或应用程序中断时,此方法将被称为不仅,而是当我导航到其他活动(并完成当前活动)时。 有没有解决这个问题的方法?

3 个答案:

答案 0 :(得分:4)

可能想看看这个Android Docs

您正在寻找onPause / onResume,基于

  

或仅在应用程序将被调用时的任何方法   投入背景

该文档应解释堆栈的工作原理,这将使您能够解决此问题。

答案 1 :(得分:1)

这个问题没有一天解决方案,因为android不允许你覆盖主页按钮。最简单的方法是在onPause中删除代码,但当然可以在没有按下主页按钮的情况下调用它。

第二个(不接受)答案here有一个有趣的解决方案,但我没有尝试过,所以我不确定它是否有效

答案 2 :(得分:0)

我找到了这个问题的答案,或者至少有一种方法可以做到这一点:

The following answer worked for me perfectly