Что происходит с выполнением кода, когда приложение переходит в фоновый режим? - PullRequest
0 голосов
/ 06 мая 2020

Прежде всего, я хотел бы извиниться, если вы считаете мой вопрос пустышкой, но я действительно новичок в iOS и просто хочу понять, как все работает. У меня вопрос - что происходит с выполнением кода, когда я нажимаю кнопку «Домой» на моем iOS устройстве. Представьте себе такую ​​ситуацию, у меня есть несколько запущенных задач - пользовательский интерфейс обновляется в основном потоке, фоновый поток загружает некоторые вещи из Интернета и в какой-то момент (пока эти задачи не завершены). Так что же будет с исполнением кода? Будет ли он просто приостановлен, например, выполнение просто остановится на какой-то строке кода и продолжится, как только приложение вернется в фоновый режим? Или будет что-то еще? Можно ли предположить, что если я отправлю приложение в фоновый режим, а затем верну его обратно, код будет выполняться таким же образом / в том же порядке, и приложение будет вести себя так же, как и без отправки приложения в фоновый режим (при условии, что что я ничего не делаю c, когда приложение переходит в фоновый режим)? Я пытался найти что-то в документации Apple, но там нет такого подробного объяснения того, что будет. Спасибо за помощь

1 Ответ

1 голос
/ 06 мая 2020

Обратитесь к этому: https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622997-applicationdidenterbackground

Когда приложение переходит в фоновый режим, ОС замораживает память, выделенную вашему приложению. Это означает, что ваш код не будет вызван после вызовов appdelegate didEnterBackground метод.

Однако в ios доступно несколько фоновых режимов, которые мы можем включить с помощью раздела возможностей. Когда у нас включены такие возможности, наше приложение все еще может взаимодействовать с этими службами в режиме BG. Например, мы можем переключить функцию звука в фоновый режим и позволить нашему аудиоплееру в приложении работать enter image description here

...