1

我有以下情况。

我需要设置许多警报以在不同的特定日期开始相同的活动。

为了做到这一点,我显然使用了一个 AlarmManager。

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

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

关键是有时我不得不取消它们!

如果我不这样做,requestCodeAlarmManager 不会取消它们。

在代码中检索原始文件非常困难requestCode,因为它们是在运行时在不同的时刻/日期创建的......

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

4

1 回答 1

1

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

于 2013-09-28T14:34:19.673 回答