0

LibGDX ゲームでアクティビティの非常に奇妙な動作があります。ゲームをプレイしてから電源ボタンを押すと、デバイスがスリープ モードになります。アクティビティのコールバック メソッドにログを追加したところ、次のように表示されました。

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() とさらにコールバックが呼び出されることです。そして、これが約1分間に5~10回繰り返されます。
アクティビティが再起動する理由と、この操作を実行しているものがわかりません。私のゲームでは、課金サービス v2 (他のプログラマーによって実装されています) があり、無料のゲームを復元するために AlarmManager をセットアップしています。

私はこの問題に完全に混乱しているので、助けていただければ幸いです。

アップデート

libGDX を扱っているようです - 同じライブラリ バージョンで別のプロジェクトをビルドしましたが、それは私のゲームとまったく同じように動作します。

4

1 に答える 1

1

あなたの AndroidManifest.xml には、次のようなものがあるはずです-

<activity 
  android:name=".YourAppName"
  android:configChanges="keyboardHidden|orientation|screenSize"/>
于 2013-05-14T18:48:52.827 に答える