android - 无法取消 PendingIntents - Android

标签 android alarmmanager android-pendingintent android-alarms

我编写了一个警报系统,它与信息所在的服务器同步。

有时,在服务器上的更新中,一些警报会被删除。现在,它已从数据库 db4o 中删除,但我无法取消已编程的 pendingIntents。

现在,我有以下代码:

PendingIntent pendingIntent;
public class xxx{

public void updateObjects(){

alarmManager.cancel(pendingIntent);//delete all alarms
(...)
for(...){
    //Update each object ofdb4o with the new object value's.
    (...)
    doIntents(context,mil,obj);
    }
            (...)
    }

public void doIntents(Context context, long mil, ClassObjects obj){
(...)
pendingIntent = PendingIntent.getBroadcast(context, obj.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
(...)
}
}

任何人都可以帮我取消那些我不需要的待定 Intent 吗?

谢谢!!!

最佳答案

要取消 PendingIntent,您必须传递与设定时间相同的 ID

            PendingIntent pendingIntent = PendingIntent.getBroadcast(context, obj.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
            AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
            alarmManager.cancel(pendingIntent);

关于android - 无法取消 PendingIntents - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257128/

相关文章:

android - 如何在android中停止闹钟

android - 将额外的 Intent 传递给 android 广播接收器

Android:如何从 SubSettings 禁用左上角后退按钮

android - ListView 以及如何使用按钮控制其中的项目

android - 使用 AlarmManager (Android) 设置和取消闹钟

android - 带有 ONE_SHOT 标志的未决 Intent

java - 我如何知道我的服务何时从广播接收器与 Android 调用?

android - 如何在 Android 的 TabLayout 中使选项卡标题向左对齐

Android 小部件如何从中获取小时和分钟的时间?

android - 从 Activity 中清除 Intent 标志,以便它恢复其原始启动行为