我想设置一个只触发一次的闹钟。
有一个名为 OneShot 的 pendingintent 标志。看起来这将是正确的标志。
但是我需要使用那个标志吗?如果我使用 AlarmManager.SetTime(),则它不应重复。
OneShot 提供什么?
最佳答案
我认为您是在询问通过 AlarmManager.set 安排一次闹钟之间的区别(不是 setTime?)和 PendingIntent.FLAG_ONE_SHOT 的使用.
首先要了解 PendingIntent
是一个许可,可以在未来某个时间点充当您的应用程序并允许您使用您的应用程序。来自 PI 文档:“返回的对象可以交给其他应用程序,以便它们可以在以后代表您执行您描述的操作。”
如果您只使用 AlarmManager.set
一次,那么是的,您的 PendingIntent
只会被触发一次,但无论捕获什么它都可以使用它不止一次,除非你用“一次”标志发送它。现在,如果“捕获它的任何东西”也是您自己的应用程序,那么这可能没什么大不了的(您不太可能滥用 future 的自己;))。不过,如果它是一个您认为只应使用一次的 PendingIntent
,那么继续使用 one shot 标志可能更安全。
总结一下差异,设置 FLAG_ONE_SHOT
发送使用 PI 的权限 仅使用 PI 一次,而不是仅使用 AlarmManager< 触发一次
。报警多少次,PI的权限是多少,是两个不同的东西。
关于android - 待定 Intent 类型和警报管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17490012/