В чем разница между Background App Refresh в iOS 7 и многозадачностью в iOS 6?

10

Разве iOS 6 не поддерживает многозадачность и позволяет фоновым приложениям обновлять свой контент? Так что нового в iOS 7? Только что мы можем включить / отключить доступ определенных приложений к сети при работе в фоновом режиме?

Кроме того, я вижу, что приложение Pandora отсутствует в этом списке («Настройки» → «Основные» → «Обновление фонового приложения»), и все же оно отлично работает в фоновом режиме и извлекает данные в 3G. Как это работает?

В.А.
источник

Ответы:

13

iOS 4 и выше поддерживает многозадачность для некоторых конкретных случаев использования:

  • Программа, для выполнения которой требуется ограниченное количество времени (например, загрузка файла), и может быть приостановлена ​​после этого. Он не проснется, пока пользователь не вернется в приложение.

  • Воспроизведение звукового контента для пользователя в фоновом режиме, например, Pandora.

  • Запись звука в фоновом режиме

  • Информирование пользователя о его местонахождении, например, навигационное приложение

  • VoIP-приложения, такие как Skype

  • Новые приложения, которые периодически обновляют контент

  • Общение с подключенными аксессуарами (добавлено в iOS 5)

  • Приложения, которые взаимодействуют с устройствами Bluetooth (добавлено в iOS 6)

iOS 7 добавляет два дополнительных варианта использования для многозадачности.

  • Программа может зарегистрироваться, чтобы регулярно загружать небольшие наборы информации. Например, он может регулярно обновлять твиттер. Этот новый API позволяет вам указать, что вы хотели бы просыпаться, чтобы загружать информацию так часто. Например, программа может сказать, что хочет загрузить информацию после того, как она спит не менее пятнадцати минут. Затем система попытается найти время, когда она сможет разбудить столько приложений одновременно, чтобы выполнить свою работу. Минимизация количества раз, когда устройство просыпается, поможет сэкономить заряд батареи.

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

Алан Шутко
источник
Вау, и я подумал, что знаю, что это значит. Оказалось, я понятия не имел. Хорошо написан.
Мелван,
Это может заслуживать отдельного вопроса, но ограничит ли отключение «фоновое обновление приложения» какой-либо из вариантов использования до iOS 7? Я собираюсь угадать нет, так как я не видел Apple Maps среди вариантов включения / выключения.
Вероятность
7

Я действительно пошел на сессию WWDC по этому вопросу, поэтому у меня есть немного понимания по этому вопросу. Насколько я понимаю, в iOS 7:

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

Когда это будет полезно? Для приложений с динамическим обновлением контента. Например:

  • щебет
  • facebook
  • Приложение Stack Exchange
  • Приложение новостей
  • Читатель RSS
  • и т.п.

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

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

Кроме того, разработчики любят эту функцию - когда-то вокруг Тима Кука было несколько разработчиков, которые благодарили его за такую ​​функцию и пытались сделать так, чтобы она никуда не исчезла.

Отменить
источник