0

我刚刚在我的 iOS 应用中实现了后台获取。我在我的应用委托中实现了这个方法:

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

实现这一点的正确方法是completionHandler(UIBackgroundFetchResultNewData)在有新数据时调用,并且completionHandler(UIBackgroundFetchResultNoData)在没有新数据可下载时调用。

但是,并非所有 Web 服务都可以提供此信息。其中一些只是要求开发人员一直获取新数据,即使没有新数据。completionHandler(UIBackgroundFetchResultNewData)在这种情况下,在每次后台提取时调用的缺点是什么?

4

1 回答 1

2

调用的一个副作用completionHandler(UIBackgroundFetchResultNewData)是获取 UI 的快照,以便当用户切换回您的应用程序时,UI 会立即更新。

根据您获取数据的频率以及它是(或不是)新数据的可能性,由于在缓存中不必要地捕获和保存快照,这可能会导致一些中等的性能损失。如果您的应用程序已经在突破性能和电池使用的界限,那么可能值得研究在 Web 服务端进行更改。

于 2015-11-04T08:46:14.337 回答