Как выполнить очистку, когда приложение убито в фоновом режиме?

StackOverflow https://stackoverflow.com/questions/4645112

Вопрос

Мое приложение создает некоторые временные файлы, которые мне нужны во время всего жизненного цикла. Мне нужно утилизировать эти файлы в конце концов, поэтому они не занимают место на устройстве. Я подумал, что смогу удалить их, когда приложение выходит, но поскольку многозадачность была введена, жизненный цикл не так просто, как раньше. Мой главный вопрос: когда мое приложение перемещается на фоновой и убит позже, это получает applicationWillTerminate:? Или это просто вытерся из памяти?

Я не могу сделать очистку, когда приложение перемещается на фоном, поскольку он может быть в середине операции, и понадобится временные файлы, как только он вернутся на передний план. Я думаю, что могу очистить файлы при запуске, но я заинтересован в applicationWillTerminate: поведение в любом случае.

Это было полезно?

Решение

Нет, applicationWillTerminate: Не вызывается многозадачно включена в установленные устройства iOS 4. Когда ваше приложение прекращено, это обычно означает, что устройство заканчивается памятью, так что даже если делал Звоните, нет, говоря, что у вас будет достаточно памяти, чтобы завершить задачу в любом случае.

Apple рекомендую вам очистить, когда ваше приложение пойдет в фоновом режиме. Вы можете запросить дополнительное время, чтобы сделать это, если вам нужно несколько секунд (это одно из немногих сценариев многозадачности, открытых для всех приложений).

Ваши другие варианты будут привести к тому, когда задача закончена (всякий раз, когда это) или когда приложение запускается. Я думаю, что могут быть другие перестановки ...

Другие советы

Интернет говорит, что ApplicationWILLEMING: не вызывается, в то время как приложение погиб в фоновом режиме. Другой способ состоит в том, чтобы сохранить некоторую информацию (в nsuserdefaults, или около того), какие временные файлы вы открылись, и после запуска проверки, если эти файлы остаются, и удаляют их. Кроме того, вы можете узнать, как iOS убивает ваше приложение (я предполагаю, что это делается путем отправки сигналов, однако я не уверен) и добавляю обработчик сигнала в ваше приложение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top