0

我开发了一个 android 应用程序来通过警报管理器发出通知。现在我想取消一个触发通知的警报我看到了这段代码但它删除了所有警报我如何删除我想要的一个警报

Intent intent = new Intent(this, AlarmReceive.class);
PendingIntent sender = PendingIntent.getBroadcast(this,
               0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

// this line for cancellation
alarmManager.cancel(sender);
4

1 回答 1

0

取消的文档说:

删除任何具有匹配 Intent 的警报。任何类型的任何警报,其 Intent 与此匹配(由 filterEquals(Intent) 定义)都将被取消。

因此,如果您希望能够删除特定意图,则必须能够区分您正在启动的所有意图。如果您的意图是明确的,我建议在创建后添加一个动作。

这样,filterEquals 将考虑到这一点并仅删除相关的。

就像是:

Intent intentYouWantToCancel = new Intent(this, AlarmReceive.class);
intentYouWantToCancel.setAction("aRelevantString");

当您设置警报管理器以及何时删除它。

于 2013-03-31T10:46:55.123 回答