1

我想设置一个会触发一次的警报。

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

但是我需要使用那个标志吗?如果我使用 AlarmManager.SetTime(),那么它不应该重复。

OneShot 提供什么?

4

1 回答 1

2

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

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

如果您只使用AlarmManager.setONCE,那么是的,您PendingIntent只会被触发一次,但无论捕获什么,它都可以多次使用它,除非您使用“一次射击”标志发送它。现在,如果“捕获它的东西”也是您自己的应用程序,那么它可能没什么大不了的(您不太可能滥用自己未来的自我;))。尽管如此,如果PendingIntent您认为它应该只使用一次,那么继续使用 one shot flag 可能更安全。

总结一下差异,设置FLAG_ONE_SHOT发送权限以使用 PI 仅使用一次PI,而不是仅使用PI 触发一次AlarmManager。你发出多少次警报,以及 PI 的权限是什么,是两件不同的事情。

于 2013-07-05T14:59:12.330 回答