2011-04-14 56 views
0

因此,我正在爲我的大學的這場遊戲比賽創建遊戲。我正在擴展表面視圖,基本上只是在屏幕上移動drawable。我最近剛將一些圖片更改爲更新的圖片。現在,當我按下主頁按鈕(或後退按鈕)時,手機將完全鎖定,我將不得不拔出電池重新啓動。Android遊戲導致手機鎖定

我也測試過這與其他手機,他們的手機將鎖定。有什麼可能導致這種情況發生?

+1

可能的罪魁禍首是您的活動的onPause,onStop或onDestroy方法。確保它們中沒有任何內容阻塞或執行繁重的計算或文件I/O。 – 2011-04-14 03:03:59

+0

這是我第一次使用這個網站,很抱歉,如果我不夠描述。我有我的遊戲暫停的方式是使用surfaceview類中的onWindowFocusChanged()方法。當它失去焦點時,我將thread = null。然後,當它再次獲得焦點時,我將線程設置爲等於一個新線程,並使用我在線程之外創建的實例變量創建該線程,以使它在設置爲null時具有相同的狀態。我不會更改活動中的默認onPause(),onStop()或onDestroy()。 – klong15 2011-04-14 03:05:19

回答

0

您是否在日誌中收到有關ANR的消息?如果是這樣,請嘗試:執行命令(在您的計算機上)adb pull /data/anr/traces.txt - 這將包含系統報告ANR時運行的任何內容的堆棧跟蹤。從這裏,您可以檢查程序的堆棧痕跡,並希望找到事情陷入困境並凍結一切的地方。

如果/data/tanr/traces.txt中沒有任何內容,您可以嘗試命令adb bugreport,該命令將返回它可以包含的所有信息(包括所有正在運行的進程的堆棧跟蹤)。

當您進入像這樣的凍結狀態時,這些痕跡很有用。

+0

在logcat中,我得到了重複「請求時間失敗:java.net.SocketException:協議不支持地址族,然後每隔幾行我得到一個標籤」dalvikvm「,並帶有消息」GC_FOR_MALLOC釋放:(一些大數目)對象/(number)bytes in 130ms「 – klong15 2011-04-14 03:35:40

+0

檢查正在運行的進程中的線程堆棧可能比logcat更有幫助。 – 2011-04-14 06:11:49