2013-05-14 51 views
0

我在我的LibGDX遊戲中有非常奇怪的行爲 - 當我玩遊戲,然後按下電源按鈕發送設備到睡眠模式。我已將日誌添加到Activity的回調方法,這就是我所看到的:睡眠模式下的活動生命週期奇怪的行爲(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(),並進一步回調調用時,設備是睡着了。這在接近一分鐘內重複5-10次。
我不明白爲什麼活動重新啓動以及執行此操作的是什麼。 我的遊戲我有帳單服務v2(由其他程序員實施),並設置AlarmManager恢復免費遊戲。

我完全和這個問題混淆,所以任何幫助將不勝感激。

UPDATE

似乎在libGDX那筆交易 - 我已經構建具有相同的庫版本的另一個項目,它的行爲完全像我的比賽。

+0

有經常好像是屏幕方向的改變一些(甚至可能是大小?),睡眠有一個方向)。您可能會嘗試在您的Manifest中指出您將在您的應用程序中處理配置更改。 – 2013-05-14 18:05:25

+0

謝謝克里斯,但我已經處理方向| screenSize | smallestScreenSize – Viacheslav 2013-05-14 18:55:05

回答

1

在AndroidManifest.xml後,你應該進入睡眠模式(實際上,當有事情喜歡 -

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

感謝您的回答,但它已經添加。我理解你的想法--onConfigurationChanged()但Activity不會被銷燬,它只需重新啓動幾次,然後暫停幾分鐘,然後活動再次重新啓動。 – Viacheslav 2013-05-14 18:54:04

+1

這是我相信Android的行爲,而不是LibGDX。它是否導致任何問題?清單中的什麼是targetSdkVersion? – 2013-05-14 18:59:34

+0

間接 - 是的。通過AlertManager實現生命恢復,並在onPause()中啓動並在onResume()方法中釋放。 onPause/onResume之間的切換過多導致恢復時間不準確。目標SDK是15,最小 - 8.我已經在HTC One V上用4.03測試 – Viacheslav 2013-05-14 19:06:12