Не получается didReceiveMemoryWarning, когда приложение находится в фоновом режиме - PullRequest
8 голосов
/ 21 мая 2011

Я замечаю, что мои контроллеры представления не получают свои методы didReceiveMemoryWarning, вызываемые, когда мое приложение находится в фоновом состоянии на симуляторе iPad.В частности, я вижу вызов applicationDidEnterBackground в своих журналах, затем нажимаю кнопку «Предупреждение о симуляции памяти», и затем я замечаю своеобразное отсутствие каких-либо вызовов didReceiveMemoryWarning.

Однако, когда явернуть приложение на передний план. Я неожиданно получаю вызов didReceiveMemoryWarning, как если бы он был в очереди.

Что меня смущает, так это то, что мое приложение действительно в фоновом режиме или простоутончено приостановлено.Есть ли какой-нибудь способ сказать в симуляторе?

Кроме того, если он еще не приостановлен и действительно находится только в фоновом режиме, я бы посчитал глупым, что я не могу обработать didReceiveMemoryWarning.Потому что это будет означать, что только приложение переднего плана может обрабатывать предупреждения памяти, чтобы освободить место, что, конечно, странно, учитывая, что приложение переднего плана может быть только одним из десятков запущенных приложений, и было бы гораздо больше смысла, если бы онивсе может освободить память.

В любом случае, основные вопросы: почему я не получаю didReceiveMemoryWarning в фоновом режиме?И еще, я действительно отстранен?А как мне сказать?

Ответы [ 2 ]

8 голосов
/ 21 мая 2011

Если вы не запускали фоновую задачу или не выполняли VOIP, отслеживание местоположения или аудио в фоновом режиме, то ваше приложение приостанавливается после applicationDidEnterBackground.Он не будет получать никаких уведомлений.Любые уведомления хранятся (даже те, которые появляются после приостановки приложения) и отправляются в приложение, когда приложение снова выходит на передний план.

0 голосов
/ 21 января 2016

Я не думаю, что это так. Я могу получить доступ к didReceiveMemoryWarning коду в фоновом режиме. Как только система генерирует сигнал с низким объемом памяти, чем добропорядочный гражданин, мы должны освободить память. Это также помогает нашему приложению завершаться системой.

...