这就是闹铃的原因
public void setSilent(Long taskId, Calendar when){
Intent i = new Intent(mContext, SilentReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(mContext, 1 , i, PendingIntent.FLAG_ONE_SHOT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
它需要一个ID和日期才能与该意图一起使用。
当用户单击删除时,我正在另一个文件中取消它。使用
Intent i = new Intent(null, SilentReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(null, 1 , i, PendingIntent.FLAG_ONE_SHOT);
应该工作,因为它具有与第一个相同的请求代码,或者我做错了什么?
最佳答案
您必须保存对第一个PendingIntent的引用。这样您可以使用:
mAlarmManager.cancel(pi);
并且警报应被取消。
这个答案已经重复了很多次。请先查询再询问。
关于android - 为什么Android不能取消闹钟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5784164/