设备电池电量低于40%时,iOS后台获取失败

时间:2018-04-04 17:48:28

标签: ios batterylevel background-fetch

我们最近发现即使启用或禁用低电量模式,当设备电池​​电量低时,后台提取也会失败。

我们还没有弄清楚它支持的确切电池电量是多少,因为我们的一些测试设备因电池电量低于28%而失败,有些甚至失败了39%。

我们没有重现的唯一一个测试用例是,fetch在40%及以上时没有失败。

  

我们并不担心低功耗模式,因为它会暂停   应用程序中的背景提取。

如果设备连接到充电,那么在低功耗模式下,提取仅在40%及以上工作。

我的问题是我应该考虑最低电池电量应该是40%还是一些X%以及如何确定这个X?

对于大型数据集,同步时间可能长达2小时。如果我们能够知道使背景提取工作所需的正确电池电量,那么我们可以相应地设计我们的应用程序。

1 个答案:

答案 0 :(得分:1)

执行application:performFetchWithCompletionHandler:时,您的应用是否正在执行繁重的任务?请记住,该方法中的代码应该非常高效且耗时较少(而且您始终必须调用completionHandler)。正如Apple's documentation所说:

  

及时调用完成处理程序,并使用   准确的结果,有助于确定您未来的执行时间   应用收到。如果您花费太长时间来更新您的应用,系统可能会   将来不太经常安排您的应用以节省电力。

如果application:performFetchWithCompletionHandler:中的代码执行繁重的任务,那么在调用后台提取时,SO会降低应用的优先级。我建议您查看代码并查找可以优化的代码行。