2015-11-04 15 views
0

我剛剛在iOS應用中實現了後臺提取。我在我的應用程序委託實現了這個方法:執行後臺提取時,不會一直返回UIBackgroundFetchResultNewData的缺點是什麼?

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

實施這一正確的方法是調用completionHandler(UIBackgroundFetchResultNewData)當有新的數據,並completionHandler(UIBackgroundFetchResultNoData)當有什麼新的下載。

但是,並非所有的Web服務都可以提供此信息。即使沒有新的東西,其中一些只是需要開發者隨時獲取新數據。在這種情況下,每次背景調用時調用completionHandler(UIBackgroundFetchResultNewData)的缺點是什麼?

回答

2

調用completionHandler(UIBackgroundFetchResultNewData)的一個副作用是採用UI的快照,以便當用戶切換回您的應用時,UI立即更新。

取決於你如何往往獲取數據,以及如何有可能是(或不是),是新的,這可能會導致一些性能適中命中由於不必要的捕獲並保存在緩存中的快照。如果您的應用程序已經在推動性能和電池使用的界限,那麼可能需要對Web服務端進行調整。