2012-03-16 218 views
0

我目前正在爲Android OS開發一款遊戲。其中,玩家可以進行活動。每項活動都會爲玩家帶來「能量」。玩家當前的能量值存儲在sqlite表中並顯示在主屏幕(home.class)上。當玩家進行活動時,能量值會下降。當能量達到零時,我想要一個倒數計時器將能量值重置爲10.正確實施CountDownTimer

到目前爲止,我實施它的方式如下。在顯示用戶健康/能量等級的主屏幕頂部,我顯示了CountDownTimer。

定時器工作。但是,當我點擊一個按鈕並轉到不同的活動。然後返回到主屏幕時,計時器已重新啓動。我知道這是因爲下面的代碼運行時我要返回到主屏幕:

Intent i = new Intent(Crime.this, Home.class); startActivity(i);

,因爲我想更新一些活動後顯示在主屏幕的值開始新Home.class已經開展。

什麼是實現CountDownTimer的更好方法?任何幫助將不勝感激......謝謝:)

+0

您可以向Home類中添加refresh()類型的方法並調用該方法而不是創建新實例? – Thomas 2012-03-16 20:24:34

+0

你的意思是這樣的? 'public void onBackPressed(){ \t \t super.onBackPressed(); \t \t \t \t \t首頁h = new Home(); \t \t \t h.refresh();' – gurpsone 2012-03-16 20:39:42

回答

0

存儲您想要重置數據庫中的能量的時間(至少一次,你擊中),並更新剩餘的時間與一個滴答作響的線程的事情。這樣你就不需要依賴定時器來完成/重新啓動,因爲你總是可以重新計算基於時間的時間。當前系統時間