后台获取永远不会被调用

tyl*_*ler 5 iphone objective-c

我知道有数百个关于 iOS 后台获取的主题。我根本无法解决我的问题来让我的应用程序的后台获取工作。对于我的应用程序的结果来说,有一个有效的后台获取是绝对重要的。我的后台提取通过 Debug -> Simulate Background fetch 在模拟器上正常工作,也在具有特殊方案设置的设备上运行良好:“由于后台提取事件而启动”。我知道当用户强制退出应用程序时它不会被执行。我试图锁定 iPhone 并等待几个小时,然后解锁它以尝试触发后台获取。没发生什么事。实际上一切正常,但后台获取根本不会在我的 iPhone 上执行。我知道 iOS 有一个特殊的算法来调用后台线程,所以需要一点耐心。但是在等待后台提取自动发生 2 个月后,我不再有患者了。我做了什么:

  1. 应用程序功能:后台提取已激活
  2. Info.plist:需要的后台模式:App从网络下载内容
  3. 应用程序委托:
 - (BOOL)application:(UIApplication *)application    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
    }

   [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:2.0];
    return YES;
}

- (void) application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    //Do my stuff
   completionHandler (UIBackgroundFetchResultNewData);
}
Run Code Online (Sandbox Code Playgroud)

Jav*_*ont 3

您是否检查过设置 - >常规 - >后台应用程序刷新并检查其是否已启用?这可能是问题所在...