У Apple очень строгие правила относительно того, как и когда приложения могут работать в фоновом режиме.
Ниже приведены единственные сценарии, в которых стороннее приложение iOS может использовать процессор в фоновом режиме.
Background Fetch
Любое приложение может использовать «Фоновую выборку» (так называемое обновление фонового приложения) для извлечения контента в фоновом режиме в течение нескольких секунд, примерно один раз в день (на таймфрейме, регулируемом iOS, вне контроля разработчика). Background Fetch требует очень мало батареи и процессора и используется в основном в новостях / погоде / социальных сетях / почтовых приложениях для обновления вашего канала, чтобы при открытии приложения оно не было полностью устаревшим.
Аудио, передача голоса по IP, связь Bluetooth
Если приложение воспроизводит звук в фоновом режиме (через AirPlay или через динамики телефона), iOS разрешает запускать его в фоновом режиме до тех пор, пока оно не перестанет воспроизводить музыку; если приложение позволяет вам выполнять телефонные звонки на основе данных (например, звонки через Whatsapp или Skype) в фоновом режиме, оно может оставаться активным, используя ЦП на время звонка; и если приложение связывается с аксессуарами Bluetooth (например, приложение Pebble, связывающееся с умными часами Pebble), оно может постоянно бодрствовать в фоновом режиме.
Загрузка газетных киосков, удаленные уведомления
Приложения для газетных киосков (если они одобрены Apple в качестве крупной новостной организации и отображаются в разделе газетных киосков в App Store), разрешается загружать новый контент в фоновом режиме; Любое приложение (например, приложение «Нью-Йорк Таймс»), которому необходимо отображать уведомления, созданные вне приложения (например, уведомления о новостях), может бодрствовать в фоновом режиме, чтобы получать такие «удаленные» уведомления.
Обновления местоположения
Если вы разрешаете приложению «всегда» использовать ваше местоположение (то есть в фоновом режиме), то оно может быть активным в любое время в фоновом режиме. Такие приложения, как Facebook, Find Friends и другие, используют это для обновления информации о местоположении, хотя другие приложения могут использовать ее, чтобы незаметно использовать ее для выполнения задач в фоновом режиме (но только если вы специально разрешите им доступ к вашему местоположению).
Очень распространенное заблуждение , что «проводя вверх» на приложение , чтобы убить его останавливает его от работающих в фоновом режиме: это совершенно не соответствует действительности. Приложения, у которых есть одна из семи вышеуказанных причин для работы в фоновом режиме, могут работать в фоновом режиме, независимо от того, что вы их нажмете, а приложения, у которых нет одной из этих семи причин, не могут работать, когда они не работают. на экране, даже если вы не убиваете их.
Другое неправильное представление (которое у вас, похоже, есть!) Заключается в том, что отключение «Фоновое обновление приложения» остановит приложение в фоновом режиме; на самом деле, это только отключает приложение от использования Background Fetch, но оно может работать в фоновом режиме, если оно имеет одну из шести других причин, независимо от переключателя фонового обновления приложения.
Итак, приложения, которые вы установили, используют процессор, память, батарею или данные в фоновом режиме? Вы можете легко узнать! Зайдите Settings
на свой iPhone, найдите Battery
раздел и посмотрите. Если приложение показывает «Фоновая активность» под своим именем, то оно использует процессор в фоновом режиме; в противном случае он ничего не делал в фоновом режиме.
Вот пример скриншота:
На этом iPhone Podcasts работает в фоновом режиме, но ни одно из других приложений не работает. Переход к настройкам батареи - это простой способ узнать, работает ли Angry Birds в фоновом режиме.
Итак, чтобы ответить на ваши вопросы напрямую:
После перезагрузки iPhone все эти приложения могут запускаться и занимать ценное процессорное время и системные ресурсы?
Только если они специально настроены для работы в фоновом режиме, вы можете проверить, выполняли ли они это в настройках батареи вашего iPhone.
Что делать, если я запустил приложение, а затем дважды коснулся кнопки «Домой» и выдвинул приложение (чтобы выйти из него). Может ли он или его часть все еще работать в фоновом режиме сейчас или позже?
Да. Например, если Facebook использует службы определения местоположения (как и он), то, если вы проведете пальцем вверх, чтобы убить приложение Facebook, не помешает ему использовать ваше местоположение в фоновом режиме, и пока оно использует ваше местоположение, оно может выполнять практически любую другую задачу в фон тоже.
Поскольку WhatsApp, WeChat, Line и Facebook Messages уведомляют меня о новых сообщениях, похоже, они будут запущены, как только я перезагружу свой iPhone. Использует ли мой процессор в фоновом режиме? Кроме того, кажется, что даже если я отключу обновление приложения в настройках, приложения все равно могут работать в фоновом режиме. Это правда?
WhatsApp, WeChat, Line, Hangouts, FB Messenger и другие приложения чата используют remote notifications
возможность периодически проверять наличие новых сообщений в фоновом режиме. Это ожидаемое поведение (и вы можете проверить, насколько они это делают, проверив расход заряда батареи для каждого приложения, опять же в настройках «Батарея»), и не должно сильно разряжать батарею. И действительно, отключение обновления приложения для этих приложений не будет иметь никакого эффекта, так как приложения используют удаленные уведомления, а не фоновую выборку для работы в фоновом режиме.
TL; DR: приложения могут использовать ресурсы вашего телефона в фоновом режиме, вы можете видеть, как много они делают Settings
-> Battery
.
Источники информации: