定期后台同步
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定期后台同步相关的知识,希望对你有一定的参考价值。
我对ios编程很新,现在想要实现定期后台同步,以便将我的服务器数据与客户端数据同步。我想要实现的与androids SyncAdapter
相当,您可以在其中定义时间间隔(例如每30分钟),系统将在后台自动触发定义的任务。
到目前为止,我找不到Swift 3.0的这种机制,所以我需要问一下somone是否有经验或一些暗示我如何实现这一目标。
我想做的事听起来很简单:
当应用程序首次启动时,应用程序应设置同步管理器,该管理器每30分钟自动触发一次后台任务。后台任务负责同步服务器和客户端数据(使用Alamofire)。
我怎样才能做到这一点?
有一个名为BackgroundFetch
的iOS功能,您可以设置它
定期从网络下载和处理少量内容
你可以设置一个minimumBackgroundFetchInterval
。
与上面提到的Android功能相比,这个间隔不能保证。
操作系统在黑盒中进行一些启发式操作。它奖励您使用“合理”(对OS)CPU时间/功耗以及用户经常使用。另一方面,你会因为耗尽电池而受到惩罚,如果你的应用程序从未使用过,那就更糟了。
或者,根据您的需要,只要用户数据在服务器端发生变化,您就可以发布Silent (push) Notification
。静音推送会在不通知用户的情况下唤醒您的应用,因此您可以获取数据并通过安排本地通知来通知用户。
你不能。 Apple不允许第三方应用程序具有这样的常规后台时间。您需要提出另一种方法,例如在新内容可用时从您的服务器实施silent push notification。
正如@ekscrypto在评论中指出的那样,当系统决定获取数据时,您可以使用后台获取来加载少量数据。但是,您无法控制何时进行提取。在Xcode帮助系统中搜索“有机会获取少量内容”以获取更多信息。
以上是关于定期后台同步的主要内容,如果未能解决你的问题,请参考以下文章