0

我正在创建一个需要每天为日出和日落触发本地通知的应用程序。

  • 日出和日落时间每天都在变化。
  • 即使用户没有打开应用程序(即后台任务),我也希望注册本地通知。因此,用户安装应用程序,设置他的位置(因为日出和 susnet 计算是基于位置的),然后他知道他会收到日出通知并每天设置,而无需打开应用程序或连接到互联网。
  • 理想情况下,我需要一个后台任务来在给定的时间段内注册本地通知,每个时间段至少运行一次。“例如注册下周的本地通知,在这种情况下,我需要它每周至少运行一次”。
  • 当前的后台模式都不适合我的情况,我尝试了后台获取,但由于没有下载数据,iOS 在几天后停止运行我的后台任务
  • 我知道我可以使用推送通知,但除非这是我最后的选择,否则我不想这样做,因为即使手机未连接到互联网,我也希望通知发生。

那你觉得我怎么能解决这个问题?有什么我想念的吗?

4

1 回答 1

0

在后台每'n'分钟获取位置。通过使用 beginBackgroundTaskWithExpirationHandler 和 NSTimer .it 让应用程序在后台运行。因此,您可以在后台安排本地通知。在后台获取位置更新请参阅链接 如何在我的 iOS 应用程序中每 n 分钟获取一次后台位置更新?

(从 iOS7 有限长度的后台任务时间减少到 180 秒。因此您必须在接下来的 180 秒内获取位置。)如果用户强制退出应用程序。该应用程序破坏了所有任务。使用重大位置更改或区域监控来重新启动后台任务并每隔“n”分钟获取一次位置。

于 2015-10-27T11:00:56.503 回答