报警管理器未正确触发

时间:2017-11-02 13:58:29

标签: android

如果使用以下代码行,则AlarmManager会立即触发警报,这是正常的,因为Android文档声明如果过去设置了警报,则会立即触发警报。

alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60*60*24*1000, alarmIntent);

同时,通过将其设置为1分钟后触发,在adding +60*1000 to System.currentTimeMillis()之后使用此处的代码,1分钟后将不会触发警报,因为它应该(实际上警报永远不会被触发,即使在等待之后再过10分钟 - 也许它会在第二天重复,但我还没有测试过。)

alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+60*1000, 60*60*24*1000, alarmIntent);

感谢您的帮助。

此致

Ĵ

1 个答案:

答案 0 :(得分:0)

取决于您的API级别。

  

注意:从API 19(KITKAT)开始,警报传递是不准确的:操作系统   将移动警报以最小化唤醒和电池使用。那里   是支持需要严格交付的应用程序的新API   担保;请参阅setWindow(int,long,long,PendingIntent)和   setExact(int,long,PendingIntent)。应用程序   targetSdkVersion早于API 19将继续看到   以前的行为,其中所有警报都在何时传递   请求。

https://developer.android.com/reference/android/app/AlarmManager.html