删除报警管理器中的报警

时间:2017-01-07 19:42:30

标签: android algorithm broadcastreceiver alarmmanager

例如,我有一个日历,允许用户设置每天闹钟。对于此功能,我采用了警报管理器的方法setRepeating()。但是当用户想要从特定日期删除警报但未删除所有警报时,我的问题就出现了。我该怎么做?报警管理器是设置报警的唯一方法吗?任何想法将不胜感激。

我提出了最聪明的事情 - 设置广播接收器,它将在00:00触发,并按方法alarmManager.set()设置所有警报。删除的警报将在数据库中,如果今天警报将与删除的警报匹配 - 广播接收器将不会设置此警报。

2 个答案:

答案 0 :(得分:0)

AlarmManager有一个方法cancel();,它可以帮助你。但是在你的情况下,我会更自信地采用你在问题中提出的方法。

答案 1 :(得分:0)

你可以使用闹钟管理器的.cancel()方法。但是请记住一件事。你必须在警报管理器提供的挂起意图中为你设置闹钟提供相同的id。

  PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(),id,intent, PendingIntent.FLAG_CANCEL_CURRENT);
        alarmManager.cancel(pendingIntent);

提供的ID应与用于设置警报的ID相同。 我希望这会对你有所帮助.. 我建议你在某处保存每个警报的id,并在需要时用它取消它。