我们最近发现即使启用或禁用低电量模式,当设备电池电量低时,后台提取也会失败。
我们还没有弄清楚它支持的确切电池电量是多少,因为我们的一些测试设备因电池电量低于28%而失败,有些甚至失败了39%。
我们没有重现的唯一一个测试用例是,fetch在40%及以上时没有失败。
我们并不担心低功耗模式,因为它会暂停 应用程序中的背景提取。
如果设备连接到充电,那么在低功耗模式下,提取仅在40%及以上工作。
我的问题是我应该考虑最低电池电量应该是40%还是一些X%以及如何确定这个X?
对于大型数据集,同步时间可能长达2小时。如果我们能够知道使背景提取工作所需的正确电池电量,那么我们可以相应地设计我们的应用程序。
答案 0 :(得分:1)
执行application:performFetchWithCompletionHandler:
时,您的应用是否正在执行繁重的任务?请记住,该方法中的代码应该非常高效且耗时较少(而且您始终必须调用completionHandler)。正如Apple's documentation所说:
及时调用完成处理程序,并使用 准确的结果,有助于确定您未来的执行时间 应用收到。如果您花费太长时间来更新您的应用,系统可能会 将来不太经常安排您的应用以节省电力。
如果application:performFetchWithCompletionHandler:
中的代码执行繁重的任务,那么在调用后台提取时,SO会降低应用的优先级。我建议您查看代码并查找可以优化的代码行。