当用户长按Home时,如何暂停我的应用?

时间:2010-10-11 08:30:29

标签: android

如果用户点击Home键,我可以暂停我的应用程序,因为onPause事件会触发。

但是,如果用户长按Home,则会弹出最近的应用启动器,我的应用程序会在其后面继续运行。

我想在这种情况下暂停我的申请。我该怎么办?

(注意:我不想阻止长按Home或以任何方式改变其行为。我的应用只需要知道它发生了。这是一个游戏,所以我想暂停它。)

3 个答案:

答案 0 :(得分:1)

如果所有其他方法都失败,请让用户手动暂停(通过按钮或菜单)。

听起来你有一种情况,即用户在长按期间对你的游戏持续不满,但此时用户已经将注意力从游戏中移开。如果我正处于对时间敏感的游戏中,并希望通过长按主页按钮来导航,我首先想到的是手动暂停游戏。

只是值得深思,祝你好运。

答案 1 :(得分:1)

您还可以尝试在活动中覆盖onWindowFocusChanged。类似的东西:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    Log.d(TAG, "On windows focus changed. (" + hasFocus + ")");

    if (!hasFocus) doStopGame();
}

但是,当您尝试从最近的应用程序对话框返回应用程序时,我仍然不清楚如何处理事件。在这种情况下,不调用上述处理函数。但是,您仍然可以暂停游戏并向游戏玩家提供恢复它的对话框。

答案 2 :(得分:-1)

您可以覆盖活动中的onKeyLongPress()方法,执行您想要的操作,然后只需调用super方法。

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html