android - 如何获取和取消 PendingIntent?

标签 android android-intent alarmmanager android-pendingintent

我有一个 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/

相关文章:

android - 将值从第一个 Activity 传递到android中的第二个 Activity

android - 获取 GCM 时如何在锁定屏幕(如 Android 闹钟)上显示弹出对话框

java - 如何同步通知生成器和警报管理器?

android - 如何从 Android Webview 链接到 Android 应用程序

安卓 : Which method is called when fragment is pop out from backstack

android - BroadcastReceiver 与服务

android - BroadcastReceiver 的生命周期关于 Android O 的变化

android - NativeScript 8.0.4 Android 应用程序图标不会更改默认设置

c# - 安卓 XAMARIN : Camera intent is returning with null data in callback

android - AlarmManager 在 Android 4.4.2 中停止工作(使用 SetExact())