Вся правда о многозадачности в iOS. Это нужно знать каждому!
Рано или поздно все айманьяки задаются вопросом о том, как часто нужно выгружать вручную приложения из панели многозадачности.
Короткий ответ будет очень простым, и для многих, наверное, даже немножко шокирующим - не нужно! Никогда!
А теперь, для оставшихся скептиков и поклонников Фомы неверующего, разберемся, как же на самом деле работает многозадачность в IOS.
Сам термин "многозадачность" в наши дни уже давно является более
маркетинговым, чем чисто техническим. Не воспринимайте ваш iДевайс, как
компьютер с Windows или Mac OS X на борту, просто потому, что iOS
работает совсем по другому. В отличии от Windows Mobile и даже Android, iOS в большинстве случаев не оставляет работающих процессов в фоне, которые нужно выгружать вручную.
Для начала давайте перечислим состояния, в которых может пребывать приложение в iOS:
- Не запущено (not running) - приложение было закрыто или не запущено
- Неактивно (inactive) - приложение запущено, но не получает событий (например пользователь заблокировал девайс при запущенном приложении)
- Активно (active) - нормальный режим работы запущенного приложения
- Фоновое (background) - приложение больше не отображается, но код еще исполняется
- Приостановлено (suspended) - приложение находится в памяти но код не исполняется
1. Активное и неактивное состояние нас не особо интересует.
Большинство заблуждений связано с переходом приложения из активного в фоновое, приостановленное или неактивное состояния.
2. Когда вы нажимаете кнопку
"Home", приложение переходит из активного состояния в фоновое, а через
несколько секунд - в приостановленное.
Первое техническое замечание -
информация о состоянии приложения в приостановленном состоянии остается в
памяти устройства. Это сделано для того, чтобы вы могли быстрее
вернутся к нему. Это не является нагрузкой для процессора и не истощает
аккумулятор.
3. Вы можете возразить, что приложение, находящееся в памяти, требует ручной выгрузки.
Нет, так как ваша операционная система
делает это за вас. Если приложения находятся в приостановленном
состоянии длительное время, или вы запускаете, например, игру, требующую
больших ресурсов памяти, iOS начинает очищать приостановленные
приложения и переводит их в состояние "не запущенные". Таким образом память очищается полностью.
4. Самое главное заблуждение: все иконки, находящиеся в панели многозадачности, кушают память.
На самом деле тут всегда отображается только список недавно использованных приложений,
в независимости от их текущего состояния. Вы также могли заметить, что
активное приложение не отображается в панели многозадачности.
5. Об этом вы вряд ли слышали, но будет полезно знать.
Все приложения работают в фоне 5 секунд. Некоторым из них необходимо на 10 минут дольше и iOS разрешает это.
6. Однако существует пять групп приложений, которым позволяется постоянная работа в фоне.
- Приложения для проигрывания аудио в фоне, например Instacast для подкастов.
- Навигационные приложения, которые отслеживают в фоне ваше месторасположение, например iGo или TomTom.
- Приложения, отслеживающие активные звонки VOIP. Например, вы можете получать звонки в Skype, когда он работает в фоне.
- Приложения для чтения новостей, например "Киоск", загружающие новые выпуски.
- Приложения, получающие в фоне постоянные обновления от внешних аксессуаров.
К этой категории также относится встроенное приложение Mail.
Все, перечисленные выше приложения,
переводятся в состояние "приостановлено", как только исполняют свою
задачу. Например, когда Instacast перестает проигрывать подкаст, он
переходит в приостановленное состояние.
Давайте теперь сделаем короткое резюме:
- Если вас убеждают, что приложения, находящиеся в панели
многозадачности, запущены, используют память или истощают аккумулятор -
они заблуждаются.
- При нажатии кнопки "Home", приложения переводятся в состояние "в фоне", а через несколько секунд - в "приостановлено".
- Приложению перед переходом в приостановленное состояние могут
потребоваться дополнительные 10 минут работы в фоне для завершения
объемной задачи,
- iOS автоматически очищает приостановленные приложения, переводя их в неактивное состояние.
- Пять групп приложений - аудио, GPS, VOIP, Киоск и аксессуары, а
также встроенное приложение Mail работают в фоне до завершения своей
задачи.
Или если совсем коротко: вам не надо управлять приложениями в фоне. Система прекрасно справляется с этим сама.
Разработчик показывает, как iOS обрабатывает многозадачность:
Будем очень рады, если эта статья
помогла вам освободить немного свободного времени и благодарны, если вы
поделитесь информацией с друзьями.
|