待定意图类型和警报管理器

时间:2013-07-05 13:24:51

标签: android android-intent alarmmanager

我想设置一次会发出警报。

有一个名为OneShot的pendingintent标志。看起来这将是正确使用的标志。

但我需要使用那面旗帜吗?如果我使用AlarmManager.SetTime(),则不应重复。

OneShot提供什么?

1 个答案:

答案 0 :(得分:2)

我认为你问的是,通过AlarmManager.set(不是setTime?)和使用PendingIntent.FLAG_ONE_SHOT来安排一次警报之间的区别。

首先要了解一个PendingIntent是一个许可证,可以在将来的某个时刻充当您的应用程序。来自PI文档:“返回的对象可以交给其他应用程序,以便他们可以在以后代表您执行您所描述的操作。”

如果你只使用AlarmManager.set ONCE,那么是的,你的PendingIntent只会被解雇一次,但无论什么捕获它都可以多次使用它,除非你发送它带有“一枪”旗帜。现在,如果“无论什么捕获它”也是你自己的应用程序,那么它可能不是一个大问题(你不太可能滥用你自己未来的自我;))。尽管如此,如果它是PendingIntent你认为只应该使用一次,那么继续使用一次性标记可能更安全。

为了总结差异,设置FLAG_ONE_SHOT仅使用 PI发送一次使用PI的权限,而不是仅使用AlarmManager将其关闭一次。您发出警报的次数以及PI的权限是两回事。