这就是闹铃的原因

    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/

10-12 06:18