如何处理电源按钮(Android)

时间:2013-02-22 13:11:53

标签: android andengine

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

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

1 个答案:

答案 0 :(得分:2)

很奇怪,没有听说过被召唤。让我研究一下。

好的,按下电源应始终调用onPause(),您的代码中似乎存在某种错误。你可以添加一些日志调用来跟踪每一步。并打印DDMS日志。

其他可能出现的问题:

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

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

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

可能会调用onPause()但是之后会调用onCreate()吗?

关闭设备时,会显示锁定屏幕。这通常会迫使显示器达到特定方向。如果屏幕当前不在该方向,则需要进行更改,并将顶级活动的配置更改为匹配。

您可以添加如下配置更改:

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

确保不会发生这种情况。

相关问题