У меня возникла странная проблема, когда - (void)applicationWillTerminate:(UIApplication *)application{}
и - (void)applicationDidEnterBackground:(UIApplication *)application{}
не вызываются, когда я пытаюсь остановить приложение из Xcode, а не с помощью кнопки «Домой».
applicationWillTerminate не вызывается, когда приложение остановлено из Xcode
comment
Такое поведение имеет смысл, поскольку Xcode не является кнопкой «Домой».
- person Moshe   schedule 08.02.2011
comment
Я пытаюсь смоделировать ситуацию, когда мне нужно выполнить действия с файлом, когда я доберусь до applicationWillTerminate. Когда я останавливаю работающее приложение, оно не вызывает applicationWillTerminate, потому что оно завершает работу приложения.
- person Ksinak   schedule 08.02.2011
comment
@моше: Спасибо. Я думаю, теперь я понимаю, что после закрытия работающего приложения из xcode убивает все приложение и, следовательно, дальнейшего вызова нет.
- person Ksinak   schedule 08.02.2011
comment
Я опубликую ответ. Вы должны выбрать несколько ответов, если они помогли вам, чтобы люди были мотивированы помочь вам.
- person Moshe   schedule 08.02.2011
comment
Возможный дубликат Почему приложение не останавливается в симуляторе iOS триггер applicationWillTerminate:?. Это старый вопрос, но оба ответа на этот и дублирующий вопрос хороши... Я думаю, что другой ответ лучше.
- person Honey   schedule 26.10.2017
Ответы (1)
Такое поведение ожидаемо, поскольку Xcode не является кнопкой «Домой» на вашем устройстве iOS.
Если вы нажмете «Создать и запустить», например, во время тестирования другого приложения, вам будет предложено завершить первое приложение. Если вы это сделаете, то первое приложение закроется, как будто оно никогда не открывалось. Похоже, это следствие песочницы приложения.
Аналогичным образом, если вы нажмете кнопку «Домой» во время тестирования приложения на многозадачном устройстве, приложение продолжит работать в фоновом режиме и не вызовет applicationWillTerminate
. Однако ваше устройство должно вызвать applicationDidEnterBackground
.
person
Moshe
schedule
08.02.2011
Спасибо за понимание!!! Да, я столкнулся с той же проблемой с моим приложением в многозадачности, и мне пришлось переопределить applicationDidEnterBackground в дополнение к applicationWillTerminate. Это отвечает на мои сомнения.
- person Ksinak; 08.02.2011