Фоновая загрузка iOS завершается ошибкой, когда заряд батареи устройства ниже 40 %.

Недавно мы обнаружили, что даже если режим низкого заряда батареи включен или отключен, фоновая загрузка не выполняется, когда уровень заряда батареи устройства низкий.

Мы не выяснили, какой именно уровень заряда батареи он поддерживает, так как некоторые из наших тестовых устройств выходят из строя при уровне заряда батареи ниже 28%, а некоторые даже выходят из строя при 39%.

Единственный тестовый случай, который мы не воспроизвели, это то, что выборка не завершилась ошибкой при 40% и выше.

нас не беспокоит режим энергосбережения, так как он приостанавливает фоновую загрузку в приложении.

Если устройство подключено к зарядке, то в режиме Low-power выборка работает только при 40% и выше.

Мой вопрос: следует ли считать, что минимальный уровень заряда батареи должен составлять 40% или несколько X%, и как определить этот X?

Для больших наборов данных время синхронизации может составлять до 2 часов. Если бы мы могли знать правильный уровень заряда батареи, необходимый для работы фоновой выборки, мы могли бы соответствующим образом спроектировать наше приложение.


person Teja Nandamuri    schedule 04.04.2018    source источник


Ответы (1)


Ваше приложение выполняет тяжелые задачи при выполнении application:performFetchWithCompletionHandler:? Помните, что ваш код в этом методе должен быть очень эффективным и занимать мало времени (также вам всегда нужно вызывать завершениеHandler). Как сказано в документации Apple:

Своевременный вызов обработчика завершения и получение точного результата помогает определить, сколько времени выполнения в будущем получит ваше приложение. Если вы слишком долго обновляете свое приложение, система может в будущем планировать его реже для экономии энергии.

Если ваш код внутри application:performFetchWithCompletionHandler: выполняет тяжелые задачи, SO снизит приоритет вашего приложения при вызове фоновой выборки. Я предлагаю вам просмотреть свой код и найти строки кода, которые можно оптимизировать.

person Enrique Bermúdez    schedule 04.04.2018