0

如果我在 PerformFetch 中有一个函数可以在 iOS 中进行后台提取。

我在 PerformFetch 中有“终于”声明。当后台 fetch 过期时,finally 块也会调用 get 。或者它会直接进入 ExpirationHandler 块在应用程序被操作系统杀死之前进行清理吗

4

1 回答 1

0

后台调用PerformFetch( ) 时,您有大约 30 秒的时间从该方法返回,否则该进程将被终止。application:performFetchWithCompletionHandler:

如果终止,您的代码将永远不会使用您的覆盖进入finally块,也不会调用( )。这将被 iOS 视为没有返回。PerformFetchWillTerminateapplicationWillTerminate:UIBackgroundFetchResult.FailedPerformFetch

如果您在then yesBeginBackgroundTask中通过( beginBackgroundTaskWithName:expirationHandler:)标记了某个代码块的开始,则在 OS 终止时调用.PerformFetchexpirationHandlerPerformFetch

于 2017-09-25T03:38:49.607 回答