Я хочу очищать значок приложения каждый раз, когда пользователь открывает приложение. В моем приложении я очищаю значок со следующим кодом:
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] cancelAllLocalNotifications];
Я поместил этот код в - (void) applicationDidFinishLaunching:(UIApplication*)application
и -(void) applicationWillEnterForeground:(UIApplication*)application
. Я также зарегистрировался для удаленных уведомлений в - (void) applicationDidFinishLaunching:(UIApplication*)application
перед запуском вышеуказанного кода для очистки значка.
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge)];
Если я запускаю приложение, а затем возвращаюсь на главный экран, я вижу, что значок приложения был очищен, но в течение одной или двух секунд он возвращается к тому же значению, которое было до его очистки.
Я не использую локальные или Push-уведомления самостоятельно, скорее GameKit использует их, потому что это пошаговое совпадение. Когда происходят определенные события (например, это превращается в ход локального игрока в матче), на их устройство отправляется push-уведомление.
Что я мог делать не так?