我有一个 alarmManager
用于在特定时间向用户发送通知。由于有多个警报,我有多个待处理的 Intent ,我正在创建并提供一个唯一的 ID,但是在某些情况下,我需要获取所有待处理的 Intent ,然后取消它们,以便我可以重置警报。我已经尝试过这样做,但我似乎仍然无法正确,所以我有几个问题:
这是您正确获取和取消 PendingIntent
的方式吗?
Intent intent = new Intent(con, AppointmentNotificationReciever.class);
PendingIntent sender = PendingIntent.getBroadcast(con, id, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE);
am.cancel(sender);
Intent 是否需要与原始待定 Intent 完全匹配(额外和全部)?
PendingIntent
标志是否需要与原始待定 Intent 的标志相匹配?
最佳答案
我发现您实际上并没有“获取”待处理的 Intent ...您必须完全按照第一次创建它时的方式重新创建它(也包括 Intent ),然后将其传递给 AlarmManager 的取消函数。所以我发布的上面的代码真的不是不正确的,只要我第一次创建它就是这样。希望有人会觉得这很有帮助。
关于android - 如何获取和取消 PendingIntent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4347950/