例如,我有一个日历,允许用户设置每天闹钟。对于此功能,我采用了警报管理器的方法setRepeating()
。但是当用户想要从特定日期删除警报但未删除所有警报时,我的问题就出现了。我该怎么做?报警管理器是设置报警的唯一方法吗?任何想法将不胜感激。
我提出了最聪明的事情 - 设置广播接收器,它将在00:00触发,并按方法alarmManager.set()
设置所有警报。删除的警报将在数据库中,如果今天警报将与删除的警报匹配 - 广播接收器将不会设置此警报。
答案 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,并在需要时用它取消它。