我是一个使用andengine的开发游戏。当我按下电源按钮时,没有调用 onPause() 方法。我该如何解决这个问题?

    @Override
protected void onPause() {
    //this method is not calling when press power button
    super.onPause();
    this.mEngine.onPause() ;
}

最佳答案

奇怪,没听说过 不是 被调用。让我研究一下。

好的,按下电源应该 总是 调用 onPause() ,您的代码中似乎存在某种错误。您能否添加一些日志调用以遵循每一步。并打印 DDMS 日志。

其他可能的问题:

似乎有些设备在按下电源按钮时行为不端并调用了两次 onPause()

在这种情况下,请尝试使用 powerManager 查看屏幕是否真的关闭。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (pm.isScreenOn()) {
   //now do stuff
}

也许 onPause() 被调用,但 onCreate() 在之后被调用?

当您关闭设备时,会显示锁定屏幕。这通常会强制显示器处于特定方向。如果屏幕当前不在该方向,则需要对其进行更改,并适当更改顶部 Activity 的配置以匹配。

您可以像这样添加配置更改:
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|screensize"

以确保不会发生这种情况。

关于android - 如何处理电源按钮 (Android),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15025066/

10-12 02:55