安排后台任务

Schedule background tasks

我目前正在开发一个闹钟应用程序,我正在实现一个智能闹钟功能,我必须从服务器获取数据以确定是否是唤醒用户的正确时间。

比方说,案例是:

您可以使用推送通知/静默推送通知来完成此任务。 请注意,用户必须选择加入推送通知才能正常工作。 以下是您如何实现它的概述

  • 每当用户设置警报时,通过网络服务将此时间发送到服务器。
  • 服务器会向 APNS 发送推送通知负载,它会根据设备令牌重定向到 App。
  • 一旦设备收到通知负载,就会调用委托。您可以处理此负载中与警报相关的数据或调用 Web 服务调用。
  • 使用 beginBackgroundTaskWithExpirationHandler 执行您的 5 分钟间隔任务。 beginBackgroundTaskWithExpirationHandler 从 OS 请求额外时间来执行任务。 Apple 没有(有意)指定这个额外时间有多长,但实际上大约是 10 分钟。

请详细阅读:推送通知、静默推送通知和后台任务处理程序。


Background Fetch API :在 iOS 7 中,Apple 添加了对后台获取的支持——一种智能的、按应用程序的 crontab,它会在适当的时候唤醒。无法强制后台提取以精确的时间间隔执行。 iOS 在安排未来的回调时检查在之前的后台获取期间使用了多少数据和电池电量。 添加支持涉及编辑应用程序的 属性 列表(请参阅 UIBackgroundModes)并在应用程序生命周期的早期设置获取间隔

More Details Here