Быстрый "пролог":
Добро пожаловать в удивительный мир переполнения стека (SO), я сам здесь довольно нов, но нашел, что гораздо удобнее использовать приветствовать вас в любом случае!
На всякий случай, если вы этого не сделали: Прежде чем задавать вопрос, пожалуйста, осмотрите немного на SO, если кто-то еще спросил то же самое, но если вы не можете получить ответ на свой вопрос, тогда вы должны Конечно, задайте свой вопрос.
Ответ:
На этот вопрос нет однозначного ответа, потому что это зависит. Когда вы нажимаете кнопку «Домой», ваше приложение входит, как вы сказали, в фоновый режим и все еще работает в определенной степени. Однако после этого жизненный цикл приложений определяется iOS (операционной системой устройств). iOS контролирует и проверяет использование памяти и ЦП (и т. д.) устройства, и если вы запускаете другое действие, когда ваше приложение находится в фоновом режиме, что делает доступную память и ЦП и т. д. устройства недостаточным, iOS завершит любые приложения в фон, чтобы не тратить эти ресурсы (или батареи и т. д.). Если это так, ваше приложение будет перезапущено при следующем нажатии.
Хотя, если вы ничего не делаете с высокой производительностью, более вероятно, что iOS поддерживает ваше устройство в фоновом режиме.
Я не уверен в точных условиях и на таких iOS работает, но я бы сказал, что вполне вероятно, что ваше приложение будет остановлено и перезапущено через 1 или 2 часа "в фоновом режиме". Дополнительные условия применяются, если устройство заблокировано в течение этого периода.
Для надлежащей документации по этому вопросу я бы рекомендовал прочитать Документацию Apple для обработки изменений состояния приложения и / или API для UIApplicationDelegate на веб-сайте apple для разработчиков. Где вы можете увидеть, что делают различные методы в AppDelegate и как они взаимодействуют.
Редактировать (ответить на комментарий):
Как перезапустить приложение каждый раз, когда оно переходит в фоновый режим?
Хм, да, но тоже нет. Я не уверен на 100% в этом (никогда раньше не сталкивался с этим «желанием»), но вы можете сделать это в своем AppDelegate: (Это в основном приведет к сбою вашего приложения, но будьте осторожны, что Apple не поощряет вас к сбою собственного приложения в любом месте). ). Это может помешать приложению пройти процесс проверки в Apple Store (т. Е. Ваше приложение может быть не принято в App Store).
func applicationDidEnterBackground(_ application: UIApplication) {
exit(0)
}
Ознакомьтесь с ответом на этот пост для получения дополнительной информации: вызов выхода (0) в приложении iphone , objc - Правильный способ выхода из приложения iPhone? .
Лично я бы порекомендовал вам обойти это и не делать этого. Также помните, что когда ваше приложение войдет в фоновый режим, будет вызываться applicationWillResignActive
, а когда пользователь снова откроет его, вызывается applicationDidBecomeActive
, чтобы вы могли выполнить перезагрузку или что-то оттуда, если вы хотите обновить любые данные.