Как IOS управляет памятью фоновых приложений? - PullRequest
0 голосов
/ 18 мая 2018

У меня есть приложение IOS, которое во время тестирования, кажется, работает нормально до ...

Приложение находилось в фоновом режиме в течение довольно долгого времени, скажем, 24 часа ... и тем временем много активности заняломесто в других приложениях (видео, аудио, местоположение ... разряжается батарея ... используется много памяти).

Затем, когда я возвращаю свое приложение на передний план, оно работает с ошибками, например, отсутствиеаудио ... и через некоторое время вылетает.

Я ЗНАЮ, что это не лучшее описание, но это произошло только один раз, и я никого не прошу рассказать мне точно, в чем проблема.

Что я действительно хотел бы знать:

Делает ли IOS что-либо с фоновыми приложениями, например, выбрасывает объекты, которые могут им понадобиться, из памяти?Я бы подумал, что если бы он это сделал, то он перезапустил бы приложение в следующий раз, когда оно возобновлялось, вместо того, чтобы пытаться возобновить невозобновляемое.

Спасибо!

1 Ответ

0 голосов
/ 18 мая 2018

Система может счесть необходимым высвободить часть памяти, если на ней заканчивается, и ожидает, что вы справитесь с такими ситуациями, реализовав UIApplicationDelegate метод applicationDidReceiveMemoryWarning и UIViewController метод didReceiveMemoryWarning .

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

...