如何取消闹钟?

时间:2013-09-28 14:29:51

标签: android

我有以下情况。

我需要设置很多闹钟才能在不同的特定日期启动相同的活动。

为了实现这一点,我显然使用了AlarManager。

由于给予AlarmManager的PendingIntents都是等价的,为了让Android创建所有这些(而不仅仅是1),我使用不同的requestCode来区分它们。

所有这些都正常,所有警报都正确创建。

重点是有时我必须取消它们!

如果我不使用相同的requestCode,则AlarmManager不会取消它们。

在代码中检索原始requestCode非常困难,因为它们是在运行时以不同的瞬间/天创建的......

有关如何解决这种情况的任何建议吗?

1 个答案:

答案 0 :(得分:1)

您有正确的方法,因为我知道取消警报的唯一方法是取消具有相同requestCode的待处理意图,但是您的问题是检索在运行时生成的相同请求代码。您必须存储这些代码,或者通过SQLite或共享首选项将它们存储在设备上,然后根据需要检索它们。或者,您可以将requestCode作为bundle传递给意图,然后在其触发后立即取消,或者在您选择的警报生命周期中取消它。希望这有点帮助。