定期的背景同步

我相当新的iOS编程,现在想要实现定期的后台同步来同步我的服务器数据与客户端数据。 我想要实现的是与Android SyncAdapter相媲美,您可以在其中定义一个时间间隔(例如每30分钟),系统将在后台自动触发定义的任务。

到目前为止,我无法findSwift 3.0的这种机制,所以我需要问问somone对我有没有经验或者一些提示。

我想要做的事听起来很简单:

当应用程序第一次启动时,应用程序应该设置一个同步pipe理器,每30分钟自动触发一个后台任务。 后台任务负责同步服务器和客户端数据(使用Alamofire)。

我怎样才能做到这一点?

有一个名为BackgroundFetch的iOSfunction,您可以设置它

定期从networking上下载和处理less量的内容

你可以设置一个minimumBackgroundFetchInterval

与上面提到的Androidfunction相反,这个时间间隔是不能保证的。

操作系统在黑匣子中启发了一些启发式。 它会奖励您使用“合理的”(对OS)CPU时间/功耗,并且也经常被用户使用。 另一方面,如果您的应用程序从未使用过,则会因为耗尽电池而受到惩罚。

请参阅: Apple文档


或者,根据您的需要,您可以在用户数据在服务器端更改时发布Silent (push) Notification 。 无声的推动唤醒你的应用程序,而不通知用户,所以你可以获取数据,也可以通过安排本地通知来通知用户。

请参阅: Apple文档

你不能。 苹果不允许第三方应用程序有这样的背景时间。 您需要想出另一种方法,例如在新内容可用时从您的服务器实施静默推送通知