为什么这个工作android取消报警?

时间:2011-04-25 22:50:33

标签: android

这是设置闹钟的原因

    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一起使用id和日期。 当用户单击删除时,我将在另一个文件中取消它。使用

Intent i = new Intent(null, SilentReceiver.class);
         PendingIntent pi = PendingIntent.getBroadcast(null, 1 , i, PendingIntent.FLAG_ONE_SHOT);

这应该可行吗,因为它与第一个请求代码相同或者我做错了什么?

2 个答案:

答案 0 :(得分:1)

您必须保存对第一个PendingIntent的引用。这样你就可以使用:

mAlarmManager.cancel(pi);

警报应该被取消。

这个答案已多次重复。请在询问前搜索。

答案 1 :(得分:0)

小心发送PendingIntent以使用与Intent相同的数据停止闹钟以创建闹钟:problem with cancel the alarm manager pending intent