从开始日期到结束日期重复本地通知,每天Android重复1-4次

时间:2019-06-03 10:46:57

标签: android broadcastreceiver alarmmanager uilocalnotification android-pendingintent

我有一个应用程序,需要在其中使用我的数据设置一些本地通知。我可以使用AlarmManager,PendingIntent和BroadcastReciever来获取硬编码时间值的本地通知。

现在我的问题是,我需要设置从开始日期到结束日期的本地通知/提醒,每天可以进行1-4次(即频率可以是1-4次,每次4次)。

Start Date : June 3 2019

END Date   : June 30 2019

Frequency  : 2 times a day at 9:00 AM(Time1) and 6.00PM(Time2)

从6月3日开始,我应该每天在9:00 AM和6.00 PM收到本地通知,直到6月30日为止。

已更新,我尝试通过设置不同的操作来创建多个提醒,这些操作由David建议,但是它不起作用。我可能缺少了一些内容。谁能告诉我如何在一周的特定日期设置提醒?

1 个答案:

答案 0 :(得分:1)

您可以设置任意数量的警报。这里的技巧是确保AlarmManager将它们视为“唯一”。要使它们“唯一”,可以使用以下方法之一:

  • 在对requestCode的调用中使用其他(唯一)PendingIntent.getBroadcast()参数
  • 在传递给Intent的{​​{1}}中使用不同的(唯一的)ACTION或DATA

无法将闹铃设置为每天重复一定天数。但是,您可以将警报设置为每天重复一次,并在触发警报时,检查PendingIntent.getBroadcast()是否是上次触发警报,如果是,请取消警报,以使其不再触发在将来。为此,您需要记住“过期”的日期,您可以通过将信息存储在数据库或BroadcastReceiver中,或通过将这些信息作为“额外”添加到{{ 1}}传递给SharedPreferences

注意::Android有许多有关安排警报以尝试优化电池寿命的规则。如果您的闹钟不需要在确切的时间触发,Android会将时间表修改为更合适的时间。有多种方法可以使警报在精确时间触发,但是您不能可靠地设置重复的精确时间警报。如果需要准确的时间,请安排一次警报,并在触发时安排下一个警报。了解Intent的工作方式以及如何最好地在https://developer.android.com/training/scheduling/alarms上安排闹钟