【发布时间】:2013-09-16 15:44:17
【问题描述】:
我想做一个跑步教练应用。对于我所做的一些事情,我需要知道一天过去了,这意味着日期已经改变(24:00)。
这里有一些选项:
- 当然,我可以随时检查当前时间是否小于 24:00,但效率不高。
- 我还看到我可以使用意图过滤器 -
ACTION_DATE_CHANGED- 以及会监听此意图的广播接收器,我会知道日期何时更改。 但是我认为这不是最有效的方法,因为它总是听并且可能会占用一些电池和 CPU。 Android 在提高广播接收器效率方面可能做得很好,但我仍然想知道它是否适合我的需求。 - 使用警报管理器?
哪种方法最好,或者有什么不同的方法?你有什么建议,为什么?
【问题讨论】:
-
您是否需要知道日期何时更改,或者如果日期与上次使用应用程序的日期不同,您是否需要知道何时运行应用程序?
-
我是这个论坛的新手 仅供参考,Stack Overflow 不是一个论坛。这是一个问答网站,所以它的工作方式不同。为了充分利用 SO,我建议先使用 Quick Tour,另请参阅 How to Ask。
-
意图过滤器不能通过轮询工作。他们在系统中注册自己,系统只是将他们注册的操作通知他们。因此,这样做不会浪费 CPU 周期和电池(除非您注册的操作本身会消耗电池 - 例如查找当前位置)。
-
我怎样才能添加更多有用的细节?这个问题代表了 iteslf - 检测日期是否已更改的最有效方法是什么,我想可能有 1-2 种方法可以以最有效的方式进行。
-
无论如何,我需要随时知道日期何时发生变化,但如果应用程序仅在运行(在后台或前台),我也很高兴知道如何做到这一点。您还需要什么详细信息?
标签: java android date broadcastreceiver alarmmanager