如何在不同的时间去重复本地通知

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

我正在做一个prayer应用程序,使用者能够为prayer时间设置警报(本地通知),即用户设置应用程序每天通知Fajr Prayer ,问题是每个prayer的时间每天都在变化所以应用程序将在周四通知用户公平的时间与星期五的时间不同,我需要每天重复本地通知,但是根据每日prayer时间,请问,有人可以给我一个想法吗?

提问于
用户回答回答于

有三种方法可以做到这一点:

  1. 使用推送通知而不是本地通知,并将逻辑移动到服务器。问题 - 用户在离线时不会收到通知。
  2. 继续使用本地通知。您必须为每个祷告时间计划一个新通知。当然,本地通知的数量是有限的(最大64预定通知),但对于一周的通知应该足够了。通知不是警报,用户应该响应于接收通知而打开应用程序。这样,您可以在重新打开应用程序时重新安排所有通知。此外,最后一个通知可能类似于“您暂时没有打开应用程序,您将不会收到更多通知”。
  3. 而不是创建本地通知,在设备日历中创建警报/提醒(事件工具包
用户回答回答于

因此,问题似乎是您需要不时地设置此本地通知,但不能是可重复的通知。我假设用户设定了prayer时间,并希望得到通知。我建议你设置一些,因为你从列表中知道。然后设置后台提取,让我们说每5个小时,并在应用程序后台启动时,只检查仍然设置的本地通知,并根据当前日期相应地更新列表。在这种情况下,后台提取不会每5小时精确唤醒您的应用程序,但会尽力而为。我相信你的应用程序每天至少会醒来两次。您可以根据需要调整时间。

有机地获取少量内容需要定期检查新内容的应用程序可以要求系统将其唤醒,以便它们可以启动对该内容的获取操作。要支持此模式,请从Xcode项目的“功能”选项卡的“后台模式”部分启用“后台获取”选项。(您还可以通过在应用程序的Info.plist文件中包含带有提取值的UIBackgroundModes键来启用此支持。)启用此模式并不能保证系统会随时为您的应用程序执行后台提取。系统必须平衡您的应用程序根据其他应用程序和系统本身的需求获取内容的需求。在评估该信息后,系统会在有良好机会的情况下为应用程序提供时间。当一个好机会出现时,系统将应用程序唤醒或启动到后台并调用应用程序委托的应用程序:performFetchWithCompletionHandler:方法。如果内容可用,请使用该方法检查新内容并启动下载操作。完成下载新内容后,必须执行提供的完成处理程序块,并传递指示内容是否可用的结果。执行此块会告诉系统它可以将您的应用程序移回暂停状态并评估其耗电量。快速下载少量内容并准确反映其内容可供下载的应用程序,比将需要很长时间下载内容或声明内容可用的应用程序更有可能在未来获得执行时间不下载任何东西。

有关更多信息,请参阅Apple有关后台执行的文档:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

所属标签

可能回答问题的人

  • 天使的炫翼

    15 粉丝531 提问35 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    48 粉丝0 提问27 回答
  • 富有想象力的人

    2 粉丝0 提问26 回答
  • 发条丶魔灵1

    6 粉丝525 提问25 回答

扫码关注云+社区

领取腾讯云代金券