Android - 查看是否按下了主页键

时间:2013-03-13 00:10:04

标签: android basic4android

我正在制作游戏,如果用户以任何方式留下活动(按下后退或主页键),则活动需要通过发布到脚本并结束活动来结束游戏。

我可以检测是否按下了后退键,但是,我找不到任何有效的方法来检测是否按下了主页键。我无法在Activity_Pause方法中结束游戏,因为我们假设用户在游戏中接到电话。

我知道您无法捕获该事件,但是,是否有人找到了一种方法来查看该活动是否由用户留下,而不是像将电话发送到后台的其他内容。

2 个答案:

答案 0 :(得分:1)

如果你坚持的话,这里的工作是好的。 Android下一个版本可能只是关闭漏洞。

boolean mKeyPress;  
boolean mUserLeaveHint;

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

@Override
protected void onUserLeaveHint()
{
    super.onUserLeaveHint();
    mUserLeaveHint = true;
}

@Override
protected void onPause()
{
    super.onPause();
    if (!mKeyPress && mUserLeaveHint)
    {
        // HOME_KEY is pressed
    }
}

答案 1 :(得分:-2)

看起来像是这个的副本

Android, How to receive home button click through broadcast receiver?

@Override
public boolean dispatchKeyEvent(KeyEvent keyevent) {

    if (keyevent.getKeyCode() == KeyEvent.KEYCODE_HOME) {
        //Do here what you want
        return true;
    }
    else
        return super.dispatchKeyEvent(event);
}
相关问题