我为后台提取实现了performFetchWithCompletionHandler。我有本地通知设置,以便在数据发生变化时触发。出于测试目的,即使数据没有变化,我也会收到通知,因此我知道事情确实有效,而且我不必等待远程数据更改以测试我的应用程序。
在xcode的调试模式下,我使用"模拟背景提取"选项和后台提取按预期工作。通知按预期显示在模拟器上。
删除了手机上的旧应用。我将ip5设备连接到xcode并运行应用程序。应用程序在iphone上更新。在调试模式下,我执行"模拟背景提取"选项。我看到了我预期的本地通知。
现在我断开了设备的连接,我每小时都在打开和关闭应用程序(amlost!),但是后台提取甚至没有被触发过一次,我还没有看到任何本地通知。
我已设置代码来执行此操作:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
return YES;
}
我做错了什么?
答案 0 :(得分:1)
在Xcode 5 Debug模式下,您可以强制从菜单中获取背景:Debug>模拟后台获取。
答案 1 :(得分:0)
希望情况并非如此:
你在做什么类型的背景提取?提取可能在调试器中工作一次而不是再次 - 然后当你运行实际的IPA时,因为你正在做一个dataTaskWithRequest或类似的东西 - 它不会工作。