睡眠模式下的活动生命周期奇怪行为(libGDX游戏)

时间:2013-05-14 14:45:09

标签: android android-activity libgdx

我的LibGDX游戏中有一些非常奇怪的Activity行为 - 当我玩游戏然后按下电源按钮发送设备进入睡眠模式。我已经在Activity的回调方法中添加了日志,这就是我所看到的:

05-14 16:32:51.694: I/BP(32656): onPause()
05-14 16:32:51.704: I/BP(32656): onStop()
05-14 16:32:51.854: I/BPApplication(32656): BPApplication.onConfigurationChanged()
05-14 16:32:51.854: I/BP(32656): BP.onConfigurationChanged()

此时一切正常。还有一些奇怪的事情开始了:

05-14 16:40:42.774: I/BP(32656): onRestart()
05-14 16:40:42.774: I/BP(32656): onStart()
05-14 16:40:43.064: I/BP(32656): onResume()
05-14 16:40:44.566: I/BP(32656): BP.onConfigurationChanged()
05-14 16:40:44.566: I/BPApplication(32656): BPApplication.onConfigurationChanged()
05-14 16:40:49.761: I/System.out(32656): screen resize w = 480, h=800 // libGDX callback
05-14 16:40:49.911: I/System.out(32656): GAME RESUMED...              // libGDX callback
05-14 16:40:50.471: I/System.out(32656): screen resize w = 800, h=480 // libGDX callback
05-14 16:40:59.010: I/System.out(32656): GAME PAUSED                  // libGDX callback
05-14 16:41:00.711: I/BP(32656): onPause()
05-14 16:41:00.801: I/BP(32656): onStop()
05-14 16:41:00.851: I/BP(32656): onRestart()
.... this cycle repeats 5 - 10 times ....

因此,您可以看到问题是当设备处于睡眠状态时Activity.onRestart()和进一步的回调调用。这在近一分钟内重复5-10次 我不明白为什么Activity重新启动以及执行此操作的原因。 我的游戏我有计费服务v2(由其他程序员实现)和设置AlarmManager恢复免费游戏。

我对这个问题感到很困惑,所以任何帮助都会受到赞赏。

更新

似乎在libGDX中处理 - 我已经构建了具有相同库版本的另一个项目,它的行为与我的游戏完全相同。

1 个答案:

答案 0 :(得分:1)

在你的AndroidManifest.xml中,你应该有类似的东西 -

<activity 
  android:name=".YourAppName"
  android:configChanges="keyboardHidden|orientation|screenSize"/>