0

我已创建一个挂起的意图,每分钟触发一次重复闹钟。警报正常工作,但是当我取消警报时,警报仍然发生。我已阅读关于此的其他帖子,并确保所有内容都与建议的一样,主要是为了使用FLAG_UPDATE_CURRENT并在创建和取消时使用相同的代码。下面是我的代码使用方法:正在取消基于pendingIntent的闹钟不起作用

创建报警:

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); 
} 

有谁知道是什么问题是什么?

回答

0

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