使用Microsft Exchange時,Android會激活密碼屏幕,用戶需要在每次打開設備時都要通過密碼屏幕。啓用設備密碼屏幕時遊戲崩潰
我正在製作一個使用由線程運行的SurfaceView的遊戲。我正在使用很多靜態變量。如果設備在播放過程中被關閉,當我回來並輸入密碼時,遊戲屏幕會顯示一些位圖大小不正確的圖像並被凍結。
在日誌中,我看到第一個NullPointerException與非UI線程,然後ANR錯誤。它看起來像關閉設備已經銷燬了我的應用程序的一些對象,但它沒有再次通過onCreate和SurfaceView構造函數。
當通過電話或單擊HOME按鈕暫停遊戲時,我沒有任何問題。另外在其他兩種設備上,遊戲在遊戲中途關閉和打開後仍能正常工作,但它們沒有安全屏幕。
我使用的Galaxy Tab,OS 2.2
編輯: 後在線程中打印堆棧跟蹤,我得到
android.graphics.Canvas.throwIfRecycled
似乎我的一些位圖已被回收。任何想法如何在onResume或surfaceChanged()中檢測到這一點,它總是在返回到應用程序時觸發?
堆棧跟蹤真的會有所幫助。您的遊戲在通電時是否重新啓動?你是否將任何數據保存到db/file/preferences? – 2011-04-12 15:35:28
發佈您在日誌中獲得的內容,以便我們找到某些內容 – 2011-04-12 15:37:45