我想做一个正在运行的教练应用程序。对于我做的一些事情,我需要知道一天过去了,这意味着日期已经改变(24:00)。
以下是一些选项:
ACTION_DATE_CHANGED
- 以及一个将听取此意图的广播接收器,我将知道日期何时发生变化。
但是我认为这不是最有效的方式,因为它总是倾听并且可能需要一些电池和CPU。 Android可能在使广播接收器高效方面做得很好,但我仍然怀疑它是否适合我的需求。哪个最好,还是有不同的方式?你有什么建议和原因?
答案 0 :(得分:2)
如果您需要在每次00:00时采取行动,则必须使用AlarmManager和BroadcastReceiver。然后,你将能够在接收器的onReceive()方法中做任何你必须做的事情。哦顺便说一下,BroadcastReceivers是最有效的方法,因为它们只在onReceive()方法中保持设备处于活动状态。
使用AlarmManager在00:00每天设置重复呼叫onReceive。如果您需要一个例子,请在评论中告诉我。
除此之外,如果您每天不必采取任何行动,您只需在应用程序内部进行检查即可。您可以随时将应用程序的上次打开时间保存到SharedPreferences中。