Задачи, расходующие заряд батареи при запуске в фоновом режиме

Apple заявляет, что приложение, использующее фоновый режим, не должно выполнять дорогостоящие, потребляющие заряд батареи задачи при запуске в фоновом режиме. Что именно считается задачей, потребляющей жидкое тесто? Чтобы быть конкретным: приемлем ли поиск и массив из 100 записей? Как насчет 1000?

2 ответа

Решение

Задача, потребляющая батарею, - это всего лишь задача, которая использует настолько много процессорного времени, что это сильно ударяет по батарее, что измеряется экраном "процент заряда батареи". Для этого поиск 100, 1000 или 1000000 предметов за один раз вряд ли нанесет ущерб. С другой стороны, поиск списка из 10 элементов пятьдесят раз в секунду очень вероятно сделает вашу задачу потребителем высокой энергии. То же самое касается загрузки данных несколько раз в минуту, использования служб определения местоположения и т. Д.

Практическое правило очень простое: перейдите в представление "Последние 24 часа" экрана "Процент заряда батареи" и посмотрите, есть ли там ваше приложение. Если его нет, или если оно находится ниже "Экран Home & Lock", ваше приложение в порядке.

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

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

Вы не должны создавать приложение, которое помогает SETI или Folding или ищет следующий по величине простейший - или чрезмерно использует радио. Но для небольших задач, таких как ваша, это руководство не должно касаться. Тем не менее, это только оценка, и, в конце концов, процесс рассмотрения будет принимать решение об этом в каждом конкретном случае.

Общее эмпирическое правило от Apple:

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

Итак, вопрос для вас, чтобы решить, нормально ли это: пользователь ожидает, что это будет сделано прямо сейчас? вместо того , чтобы использовать слишком много батареи?, Если поиск в этом массиве не может быть отложен до момента, когда приложение снова станет активным (я не вижу причин, по которым он не был отложен, но это может произойти), вы можете выполнять поиск в фоновом режиме.

Другие вопросы по тегам