Android-查看是否按下了home键

Android-查看是否按下了home键,android,basic4android,Android,Basic4android,我正在制作一个游戏,如果用户以任何方式留下活动(按back或home键),则活动需要通过发布到脚本并结束活动来结束游戏 我可以检测是否按下了后退键,但是,我找不到任何有效的方法来检测是否按下了home键。我不能用Activity\u Pause方法结束游戏,因为假设用户在游戏中接到一个电话 我知道您无法捕获该事件,但是,是否有人找到了一种方法来查看该活动是否是由用户留下的,而不是通过电话等其他方式将其发送到后台。看起来像是此活动的副本 好的,如果你坚持的话,这就是解决办法。Android下一个

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

我可以检测是否按下了后退键,但是,我找不到任何有效的方法来检测是否按下了home键。我不能用Activity\u Pause方法结束游戏,因为假设用户在游戏中接到一个电话


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

看起来像是此活动的副本


好的,如果你坚持的话,这就是解决办法。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
    }
}

公共静态最终int-KEYCODE_HOME添加到API级别1密钥代码常量:HOME密钥中。此密钥由框架处理,并且从未交付给应用程序。常量值:3(0x00000003)这是不可能的。这是一项非常复杂的工作,不值得这么做。如果你指的是基于时间的工作,那么我同意这不是一个真正的解决方案。这似乎真的是android的一个大问题。我理解不能捕获事件,但我们至少应该能够看到它是否被触发。不,这不是时基,但你必须覆盖一系列方法,然后你可以从这些方法中扣除按下了HOME键。但是,除非你使用服务,否则你不能发布脚本。我认为如果没有按下键盘,上面的一切都可以。若有键盘按下,那个么一次必须做更多的抽搐。我们已经测试过,发现后退键也可能通过这种方式。
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
    }
}