检测日期是否发生变化的最有效方法是什么?

时间:2013-09-16 15:44:18

标签: java android date broadcastreceiver alarmmanager

我想做一个正在运行的教练应用程序。对于我做的一些事情,我需要知道一天过去了,这意味着日期已经改变(24:00)。

以下是一些选项:

  • 当然,我总是可以检查当前时间是否小于24:00,这是无效的。
  • 此外,我看到我可以使用意图过滤器 - ACTION_DATE_CHANGED - 以及一个将听取此意图的广播接收器,我将知道日期何时发生变化。 但是我认为这不是最有效的方式,因为它总是倾听并且可能需要一些电池和CPU。 Android可能在使广播接收器高效方面做得很好,但我仍然怀疑它是否适合我的需求。
  • 使用闹钟管理器?

哪个最好,还是有不同的方式?你有什么建议和原因?

1 个答案:

答案 0 :(得分:2)

如果您需要在每次00:00时采取行动,则必须使用AlarmManager和BroadcastReceiver。然后,你将能够在接收器的onReceive()方法中做任何你必须做的事情。哦顺便说一下,BroadcastReceivers是最有效的方法,因为它们只在onReceive()方法中保持设备处于活动状态。

使用AlarmManager在00:00每天设置重复呼叫onReceive。如果您需要一个例子,请在评论中告诉我。

除此之外,如果您每天不必采取任何行动,您只需在应用程序内部进行检查即可。您可以随时将应用程序的上次打开时间保存到SharedPreferences中。

相关问题