我们最近发现,即使启用或禁用低电池模式,当设备电池级别较低时,后台提取也会失败。
我们还没有弄清楚它所支持的确切电池水平是什么,因为我们的一些测试设备在电池电量低于28%的情况下发生故障,有些甚至在39%时出现故障。
我们没有复制的唯一测试用例是,fetch没有在40%及以上失败。
我们不担心低功耗模式,因为它将暂停后台获取的应用程序。
如果设备连接到充电,那么在低功耗模式下,抓取工作仅在40%及以上。
我的问题是,我应该考虑的最低电池水平应该是40%或一些X%,以及如何确定这个X?
使用大型数据集,同步时间可达2小时。如果我们能够知道适当的电池水平需要使背景抓取工作,那么我们可以设计我们的应用程序相应。
发布于 2018-04-04 18:08:23
在执行application:performFetchWithCompletionHandler:时,您的应用程序是否在执行繁重的任务?请记住,该方法中的代码应该是非常高效和低时间的(而且您总是必须调用completionHandler)。正如苹果的文档所说:
及时调用完成处理程序,并得到准确的结果,有助于确定应用程序未来的执行时间。如果你花了太长的时间来更新你的应用程序,系统可能会减少你的应用程序在未来的日程安排,以节省电力。
如果application:performFetchWithCompletionHandler:中的代码执行繁重的任务,那么在调用后台提取时,SO将降低应用程序的优先级。我建议您检查您的代码,并寻找可以优化的代码行。
https://stackoverflow.com/questions/49657356
复制相似问题