取消基于pendingIntent的警报不起作用

时间:2016-03-03 15:43:59

标签: android android-intent alarmmanager android-pendingintent

我创建了一个待处理的意图,每分钟触发一次重复警报。警报工作正常但是当我取消警报时,它仍然会发出警报。我已经阅读了有关此内容的其他帖子,我确保所有内容都符合建议,主要是使用FLAG_UPDATE_CURRENT并在创建和取消时使用相同的代码。这是我使用的代码:

创建闹钟:

final AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

final Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
c.add(Calendar.MINUTE, 1);
alarmManager.setRepeating(AlarmManager.RTC, c.getTimeInMillis(), 1000 * 60, getIntent(context));

取消闹钟:

final AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
getIntent(context).cancel();
alarmManager.cancel(getIntent(context));

getIntent函数:

public static PendingIntent getIntent(Context context) {
    return PendingIntent.getBroadcast(context, 20, new Intent(ACTION_MINUTE_ALARM), PendingIntent.FLAG_UPDATE_CURRENT);
}

有谁知道问题是什么?

1 个答案:

答案 0 :(得分:0)

经过大量的努力,我发现有另一个服务运行(不同的apk),它也使用重复警报创建完全相同的pendingIntent。删除该服务可以解决问题。因此,原始问题中描述的方法有效。希望这有助于某人。