applicationDidReceiveMemoryWarning не работает в фоновом режиме - PullRequest
0 голосов
/ 21 октября 2011

Я попытался смоделировать предупреждение о памяти в iOS Simulator, и оказалось, что когда приложение находилось в фоновом режиме, функция не вызывалась в этот момент, но после того, как приложение снова стало активным, applicationDidReceiveMemoryWarning *Называется 1002 *.

При тестировании с Инструмент: монитор активности мое приложение не высвобождает память в фоновом режиме, пока потребление памяти другими приложениями уменьшается.

Однако, если я вызову applicationDidReceiveMemoryWarning через applicationDidEnterBackground , память будет освобождена правильно, но я не хочу освобождать память на этом этапе.

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [glView applicationDidEnterBackground:application];

    // Function works if it's called from here, but not what I want.
    [self applicationDidReceiveMemoryWarning:application];
}

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
    [glView applicationDidReceiveMemoryWarning:application];
}

Как мне это исправить?

1 Ответ

0 голосов
/ 21 октября 2011

К сожалению, Apple не рекомендует использовать руководство по программированию приложений для iOS 1002 *.Приложение кратко входит в фоновый режим, что позволяет освободить память.После этого приложение приостанавливается и не может получать сообщения, кроме applicationWillTerminate.Если срабатывает предупреждение о нехватке памяти, операционная система убивает приостановленные приложения по мере необходимости.

...