UIBackgroundFetchResult

UIBackgroundFetchResult

您能否告诉我在函数中接收到远程通知时使用fetchCompletionHandler的最佳实践:

-(void)应用程序:(UIApplication *)应用程序didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult result))completionHandler

我看到人们通常在上述函数的结尾处编写以下代码:

completeHandler(UIBackgroundFetchResultNewData);

如果我写:

completeHandler(UIBackgroundFetchResultNoData);

或者即使我不输入上面的代码,也会发生什么?

注意:我正在使用xcode7.1,objective-c,ios9.1

最佳答案

  • UIBackgroundFetchResult.NewData -在获取新内容并更新应用程序时调用。
  • UIBackgroundFetchResult.NoData -在获取新内容但没有可用内容时调用。
  • UIBackgroundFetchResult.Failed -对于错误处理很有用,当无法通过获取时调用此方法。


  • 您必须调用此命令,以使iOS知道后台获取的结果是什么。它使用此信息来计划将来的后台提取。

    如果您忽略了此操作,则操作系统可能会延迟以后的回溯获取。

    很好的例子是here

    更新:不调用此处理程序的后果可能包括完全终止您的应用程序。

    关于ios - ios中的APNS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33371608/

    10-10 19:05