我刚在iOS应用中实现了后台提取功能。我在我的app delegate中实现了这个方法:
completionHandler(UIBackgroundFetchResultNewData)
实现此目的的正确方法是在有新数据时调用completionHandler(UIBackgroundFetchResultNoData)
,而在没有新内容下载时调用completionHandler(UIBackgroundFetchResultNewData)
。
但是,并非所有Web服务都可以提供此信息。其中一些只是要求开发人员一直提取新数据,即使没有什么新东西。在这种情况下,在每次后台获取时调用require 'active_support'
require 'active_support/core_ext'
会有什么缺点?
答案 0 :(得分:2)
调用completionHandler(UIBackgroundFetchResultNewData)
的一个副作用是获取UI的快照,以便当用户切换回应用程序时,UI会立即更新。
根据您获取数据的频率以及它(或不是)新的可能性,这可能会导致一些中等的性能命中,因为在缓存中不必要地捕获和保存快照。如果您的应用已经超越了性能和电池使用的界限,那么可能值得研究在Web服务方面进行更改。