iPhone - Как отловить, если приложение закрыто (чтобы обновить значок значка) - PullRequest
0 голосов
/ 31 января 2012

Я устанавливаю:

- (void)applicationWillTerminate:(UIApplication *)application
{
    [UIApplication sharedApplication].applicationIconBadgeNumber = 1;
}

в моем делегате приложения, но значок никогда не обновляется ... В чем может быть проблема?

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

Ответы [ 3 ]

2 голосов
/ 31 января 2012

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

Из документов Apple :

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

Также:

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

1 голос
/ 31 января 2012

Бросьте NSLog(@"App is being terminated."); в ваш -applicationWillTerminate: метод. Я думаю, вы обнаружите, что этот метод не вызывается, когда вы завершаете приложение, как вы.

Вы можете установить значок значка приложения во время нормального выполнения приложения или при запуске приложения.

0 голосов
/ 31 января 2012

Пожалуйста, ознакомьтесь с документацией жизненного цикла приложения , как показано ниже

Также попробуйте и посмотрите, какой из перечисленных ниже методов вызывается

applicationWillResignActive:
applicationDidEnterBackground:
...