我想设置一个会触发一次的警报。
有一个名为 OneShot 的挂起意图标志。看起来这将是使用正确的标志。
但是我需要使用那个标志吗?如果我使用 AlarmManager.SetTime(),那么它不应该重复。
OneShot 提供什么?
我想设置一个会触发一次的警报。
有一个名为 OneShot 的挂起意图标志。看起来这将是使用正确的标志。
但是我需要使用那个标志吗?如果我使用 AlarmManager.SetTime(),那么它不应该重复。
OneShot 提供什么?
我想你问的是通过AlarmManager.set(不是 setTime?)和使用PendingIntent.FLAG_ONE_SHOT安排一次警报之间的区别。
首先要了解,aPendingIntent
是一种许可证,可以在未来某个时候使用您的应用程序作为您的应用程序。来自 PI 文档:“返回的对象可以交给其他应用程序,以便他们可以在以后代表您执行您描述的操作。”
如果您只使用AlarmManager.set
ONCE,那么是的,您PendingIntent
只会被触发一次,但无论捕获什么,它都可以多次使用它,除非您使用“一次射击”标志发送它。现在,如果“捕获它的东西”也是您自己的应用程序,那么它可能没什么大不了的(您不太可能滥用自己未来的自我;))。尽管如此,如果PendingIntent
您认为它应该只使用一次,那么继续使用 one shot flag 可能更安全。
总结一下差异,设置FLAG_ONE_SHOT
发送权限以使用 PI 仅使用一次PI,而不是仅使用PI 触发一次AlarmManager
。你发出多少次警报,以及 PI 的权限是什么,是两件不同的事情。