"管理"AlarmManager.如何检测我是否已经重复报警运行?

kat*_*tit 3 android

我有服务,我需要每5分钟运行一次.我已经有代码来安排在设备启动时重复警报.它有效但是

  1. 安装应用程序并运行它时,我的警报不会运行.需要重启debice.这是预料之中的.

  2. 如果我开始在活动开始时重复闹钟,那么我不确定我是否已经从设备启动中发出警报.我会得到"双打"吗?它会运行2个警报吗?

基本上,我想确保如果用户重新启动设备或电池芯片等,我会开始报警.但是,当安装应用程序以启动它时,我也不想让他们重启设备.或者,例如,如果用户"强制关闭"然后运行应用程序 - 它将不再运行此服务,但它需要.而且,我不想要双跑.我每5分钟就需要一次.

如何/需要这样做?

Com*_*are 5

安装应用程序并运行它时,我的警报不会运行.需要重启debice.这是预料之中的.

您不必等到重启.在首次运行应用时安排初始警报.

如果我开始在活动开始时重复闹钟,那么我不确定我是否已经从设备启动中发出警报.我会得到"双打"吗?它会运行2个警报吗?

只要它是等效的PendingIntent,它应该取代现有的警报,AFAIK.

  • 我不这么认为.如果用户前往应用程序并说"强制停止" - 将终止警报.如果用户启动app后,如果我使用这样的标志,将不会启动警报.但它将在设备重启时启动.但那不是什么大不了的事.我可以每次在应用程序启动时启动它,因为你说它正在替换前一个(如果它存在) (2认同)