3

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

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

1 回答 1

2

奇怪,没听说过叫。让我研究一下。

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

其他可能的问题:

onPause()按下电源按钮时,似乎某些设备行为异常并调用了两次。

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

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

MaybeonPause()被调用但onCreate()在之后被调用?

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

您可以像这样添加配置更改:

android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|screensize"

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

于 2013-02-22T13:25:40.220 回答