我有服务,我需要运行每5分钟。我已经有了安排在设备启动时重复报警的代码。它的工作原理,但“管理”AlarmManager。如何检测我是否已经有重复闹钟运行?
安装应用程序并运行它时,我的报警不运行。需要重新启动debice。这是预料之中的。
如果我开始在活动开始时重复报警,那么我不确定是否已经从设备启动引发报警。我会得到“双打”吗?它会运行2个闹钟吗?
基本上,我想确保我就报警,如果用户重新启动设备或电池耗尽等,但我也并不wan't时安装的应用程序得到它开始他们重新启动设备。或者,例如,如果用户“强制关闭”,然后运行应用程序 - 它不会再运行此服务,但它需要。而且,我不想要双重运行。我只需要每5分钟一次。
这可以/需要做什么?
我会让它等价。那么,我可以在主要活动开始时启动它,那样做?活动开始多少次无关紧要?但是计时器本身会被“破坏”。如果我在1和5之后开始跑步,那么如果用户在2:00开始应用 - 服务将在2:01开始。下次用户在2:02开始应用 - 服务将从2:03开始。这不是关键细节,但我理解正确吗? – katit 2011-04-17 15:41:02
@katit:我很抱歉,但我不明白你的评论。你是安排闹钟的人。当闹铃响起时,你是一个控制者。因此,你需要做任何必要的计算才能达到目的。同样,如果您在安装后第一次运行应用时建立了警报,然后再次重启,则应该处于OK状态。 – CommonsWare 2011-04-17 15:45:14
我如何知道“安装后首次运行”是什么时候发生的?我能做的最好的事情就是通过Application.onCreate。而且我也可以在偏好中加入一些我不喜欢理想的偏好。 我想我不确定生命周期是如何工作的。如果我打开HOME并停止我的应用程序 - 警报将每5分钟仍然有效(但我不知道WHEN,因为它们仅在5之后重复)。用户启动应用程序,我安排了另一个将取代现有的闹钟,但我不知道下一次执行的时间。我想我可以安排在5点运行,比如00:05,00:10等。 – katit 2011-04-17 15:52:18