Как узнать, прекращено ли приложение пользователем или iOS (после 10-минутного фона)

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

"Посредством пользователя" означает "Двойным щелчком кнопки" Главная "и нажатием кнопки". убит пользователем

"iOS" означает, что "приложение становится фоновым запущенным состоянием и iOS завершает приложение через 10 минут"

Ответы

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

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