2014-05-15 37 views
0

在我的Android遊戲中有一個街機模式,其運行時間爲60秒。遊戲屏幕由一個遊戲板組成,其中包括一個在視圖上繪製的6x6矩陣的彩色圓圈。有一個計時器和記分牌來記錄時間和分數。 Timer基本上是一個單獨的線程,休眠60秒,每秒更新一個連接到UI線程的處理程序。只要剩下的時間變爲零,遊戲就會轉到另一個顯示玩家當前得分和過去得分的活動。如果玩家按下返回鍵,則之前的活動(遊戲屏幕)變得可見,但是記分板未被重置,但矩陣重新繪製。所有的編碼都在onCreate()方法或爲遊戲創建的新方法。 onPause()onResume()方法中沒有代碼。那麼爲什麼表面視圖被重新創建和重繪?我不認爲按回運行鍵onCreate()方法。與活動生命週期相關的問題

+0

將遊戲重置邏輯移至'onResume'。每當您的遊戲畫面變爲活動狀態時,都會調用它。 – dharms

+0

如果玩家接到電話,是否會重置遊戲? – user3293494

+0

是的,我想這是事實。調用startActivity之後如何運行重置邏輯?這樣當你回來時它處於重置狀態。或者,您可以爲onResume設置一個標誌來檢查是否應該重置。 – dharms

回答

0

如果您明確致電finish(),您的第一個活動將被銷燬。

即使您不這樣做,您的活動在完全模糊之後的任何時候都會被銷燬。

因此,假定onCreate()不會被調用是錯誤的。

+0

那麼當按下返回鍵時會發生什麼? onCreate()方法被調用? – user3293494

+0

當您的活動被其他一些活動完全遮蔽時,操作系統可能會在她在後臺時殺死她。 因此,可以調用onResume或onCreate(然後onResume)。 –

+0

首先,如果正在調用'onCreate()',那麼記分板爲什麼不重置? secondaly,我第二次活動變得可見後立即按下按鈕,所以我不認爲舊的活動很快就會被操作系統殺死。 – user3293494