我想设置一次会发出警报。
有一个名为OneShot的pendingintent标志。看起来这将是正确使用的标志。
但我需要使用那面旗帜吗?如果我使用AlarmManager.SetTime(),则不应重复。
OneShot提供什么?
答案 0 :(得分:2)
我认为你问的是,通过AlarmManager.set(不是setTime?)和使用PendingIntent.FLAG_ONE_SHOT来安排一次警报之间的区别。
首先要了解一个PendingIntent
是一个许可证,可以在将来的某个时刻充当您的应用程序。来自PI文档:“返回的对象可以交给其他应用程序,以便他们可以在以后代表您执行您所描述的操作。”
如果你只使用AlarmManager.set
ONCE,那么是的,你的PendingIntent
只会被解雇一次,但无论什么捕获它都可以多次使用它,除非你发送它带有“一枪”旗帜。现在,如果“无论什么捕获它”也是你自己的应用程序,那么它可能不是一个大问题(你不太可能滥用你自己未来的自我;))。尽管如此,如果它是PendingIntent
你认为只应该使用一次,那么继续使用一次性标记可能更安全。
为了总结差异,设置FLAG_ONE_SHOT
仅使用 PI发送一次使用PI的权限,而不是仅使用AlarmManager
将其关闭一次。您发出警报的次数以及PI的权限是两回事。