这或多或少是一个设计问题,但尽管如此。我有一个IntentService,它触发一个每15分钟就会调用一次的PendingIntent。
我的问题是,对于AlarmManager,我是否应该使用:
set(...)或setRepeating(...)我注意到setRepeating(...)的问题是,我很快就会进入一个无限循环,但我认为这是因为启动时间。如果我使用set(...);它在没有无限循环的情况下按预期工作;设计问题是,在每次报警调用之后,我是否应该使用setRepeating(...)而不是添加一个set(...)?如果是这样的话,在没有无限循环的情况下,我如何才能做到这一点,同时有一个递归的IntentService,每次警报响起时都会自动调用它自己?
发布于 2014-08-18 23:22:11
set和setRepeating都很好。
set更易于跟踪。您可以控制下一个启动IntentService的时间。
我建议使用setRepeating:为什么要重复自己?对于无限循环问题,在设置警报时,将一个boolean值保存在您的SharedPreferences中。在下一次启动IntentService时,检查值。如果是true,那么警报已经设置好了。否则,这一定是第一次启动:设置repeating警报。
您将需要实现一个侦听BOOT_COMPLETED操作的接收器。当接收到此意图时,在不检查SharedPreferences值的情况下设置重复警报。但是,在发出true请求后,请将此值设置为setRepeating。
https://stackoverflow.com/questions/25373443
复制相似问题