Android 如何取消警报?

Android 如何取消警报?,android,Android,我有以下情况 我需要设置许多警报,以便在不同的特定日期启动相同的活动 为了实现这一点,我显然使用了AlarmManager 由于提供给AlarmManager的PendingEvents都是等效的,为了让Android创建它们(而不仅仅是1个),我使用不同的requestCode来区分它们 所有这些工作正常,所有警报都正确创建 关键是有时候我不得不取消它们 如果不使用相同的requestCode执行此操作,AlarmManager不会取消它们。 在代码中检索原始的requestCode非常困难,

我有以下情况

我需要设置许多警报,以便在不同的特定日期启动相同的活动

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

由于提供给AlarmManager的PendingEvents都是等效的,为了让Android创建它们(而不仅仅是1个),我使用不同的
requestCode
来区分它们

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

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

如果不使用相同的
requestCode
执行此操作,AlarmManager不会取消它们。

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


关于如何解决这种情况有什么建议吗?

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

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

谢谢kabuto178恐怕我需要把它们存放在某个地方。。。我希望有人有某种魔法技能来避免这种情况…:-)由于报警似乎是您使用的重要API,我强烈建议使用SQLite,因为它更容易使用,更干净,可以保存大量警报。您不希望使用
SQLite
,也不希望按照我建议的意图传递请求代码?谢谢kabuto178,恐怕我需要将它们存储在某个地方。。。我希望有人有某种魔法技能来避免这种情况…:-)由于报警似乎是您使用的重要API,我强烈建议您使用SQLite,因为它更易于使用,更干净,并且可以保存大量报警。您不希望使用
SQLite
或按照我建议的意图传递请求代码吗?