2013-08-07 143 views
2

曾經玩過糖果粉碎?知道你如何用盡生命,必須等待30分鐘才能重新獲得新的生命,最多可以達到5次?這是我試圖在我的應用程序中實現的想法,但我不確定如何在用戶關閉應用程序和/或電話時運行代碼。即使在應用程序關閉時也運行時鐘或計時器 - Android

我的問題是如何有一個定時器不斷運行在手機的背景,直到計時器命中X分鐘。我會使用Timer這個類嗎?因爲我熟悉那個類,並且已經在我的應用程序中實現了它的一種形式。

+1

簡短的回答你需要使用'報警管理器'。 –

+0

啓動服務並註冊警報管理器服務和警報接收器在警報執行後執行任何操作。 –

回答

0

即使應用程序關閉,我也不認爲您可以爲您的應用程序保留一個計時器。這裏是我想到的一個想法:

  • 當生命消失並且您的應用程序正在運行時,您需要啓動計時器。
  • 在您的應用程序關閉的事件,在持久性存儲保存定時器的值,如文件
  • 對機應用的開始,讀取持久存儲計時器值,一旦定時器超時重啓定時器的剩餘時間
  • ,創造新的生活。

希望它有幫助!

1

有兩件你的問題:

  • 要真正有一個計時器的運作,讓你有時間一定時間後採取的行動,使用AlarmManager。只有在您要主動中斷或通知用戶時才能使用此功能。
  • 你的場景實際上並不需要一個計時器,並且不用不必要地使用一個計時器會更有效率。相反,存儲一個時間戳。當您的應用程序再次打開時,將當前時間與時間戳進行比較並計算效果。在再生生活的例子中,你會比較時間戳,看到已經過去了100分鐘,除以30分鐘,並增加了3條生命(也許保留了額外的10分鐘的剩餘時間)。
1

如果您希望計時器在後臺運行,您可以使用AlarmManager。您可以按指定的時間間隔設置鬧鐘,或者如果您想要單次鬧鈴,可以在服務中設置鬧鐘。此外,在使用AlarmManager時,請注意,如果您的手機發生故障,您設置的所有鬧鈴都將消失。所以請注意,在電話關閉之前,您正在保存鬧鐘時間。看一看:

http://developer.android.com/reference/android/app/AlarmManager.html

在使用AlarmManager,使用正確的PendingIntent標誌或者你可能會失去以前的報警。如果你仍然想要更多的信息,你可以在這裏提出或有一個谷歌。

0

我發現this答案可能會有很大的幫助。希望它能幫助別人。

有幾種不同的方法。

  • 您可以使用系統的AlarmManager。
  • 你可以做你自己的服務。
  • 你可以讓你的TimerObject持久化。

查看完整答案和鏈接的鏈接。

相關問題