Как узнать, закрыто ли приложение пользователем или iOS (после 10 минут фона) - PullRequest
17 голосов
/ 08 сентября 2011

Как узнать, завершается ли приложение пользователем или iOS при перезапуске приложения>

«По пользователю» означает «двойным нажатием кнопки« Домой »и нажатием кнопки« - ».уничтожено пользователем

«Под iOS» означает «приложение переходит в фоновый режим, а iOS завершает работу приложения через 10 минут»

Ответы [ 2 ]

15 голосов
/ 13 мая 2015

Если ваше приложение находится в приостановленном состоянии, applicationWillTerminate никогда не будет вызвано, независимо от того, кто убил приложение iOS или пользователя.

Ваш applicationWillTerminate будет вызывать, только когда ваше приложение находится в фоновом режиме, и оно будет убито (либо iOS, либо пользователем). Термин фон означает, что оно работает в фоновом режиме, а не в приостановленном состоянии.

Просто прочитайте эту ссылку

applicationWillTerminate: —Позволяет вам знать, что ваше приложение закрывается. Этот метод не вызывается, если ваше приложение приостановлено.

Вот таблица различных состояний enter image description here

Фон - приложение находится в фоновом режиме и выполняет код. Большинство приложений кратко переходят в это состояние на пути к приостановке. Однако приложение, которое запрашивает дополнительное время выполнения, может оставаться в этом состоянии в течение определенного периода времени. Кроме того, приложение, запускаемое непосредственно в фоновом режиме, переходит в это состояние, а не в неактивное состояние. Для получения информации о том, как выполнить код в фоновом режиме, см. Фоновое выполнение.

9 голосов
/ 08 сентября 2011

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

Раньше считалось, что если пользователь убил приложение (диспетчер задач, дважды щелкнув по кнопке, а затем нажал красную кнопку '-'), это SIGKILL и applicationWillTerminate не вызывается.В середине 2013 года отчет предполагает, что это изменилось, и теперь вызывается applicationWillTerminate.

Вы можете использовать NSUserDefaults для записи какого-либо бита состояния в applicationWillTerminate, чтобы отметить, что эта функция была вызвана и, вероятно, это скорее уничтожение системы.чем убить пользователя.

...