我有一个从地址簿同步联系人的应用程序,我只需要检查新联系人并在每个午夜自动将此联系人同步到我的应用程序数据库中。
我已经了解了 iOS7 新功能 "Background Fetch" , 但这不符合我的要求,在这种情况下,操作系统将根据用户事件触发后台提取。
但是我的数据在上午 12 点之前就过时了,如果这个事件没有在这个特定的时间实例开始,我的应用程序将变得无用。
有什么办法可以实现我的需要,以便我可以在每个午夜使用后台进程将我的数据库与地址簿同步。
谢谢
最佳答案
您无法配置后台获取发生的时间。相反,您可能想看看 iOS 7 的新远程通知功能。
远程通知本质上是推送通知,但它们包含 content-available
属性。当这些通知之一到达时,系统将唤醒您的应用程序并调用应用程序委托(delegate)方法:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
在此方法中,您可以执行后台提取以检索新数据。
您必须将服务器设置为在数据刷新后向您的应用发送远程通知,以提示它们自行更新。
参见 this issue of objc.io和 'Using Push Notifications to Initiate a Download'有关远程通知的更多信息。
关于ios - 如何在特定时间点进行后台获取,比如午夜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21254533/