Ich möchte das Anwendungssymbol-Badge jedes Mal löschen, wenn der Benutzer die Anwendung öffnet. In meiner App lösche ich das Badge mit dem folgenden Code:
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] cancelAllLocalNotifications];
Ich habe diesen Code in beide - (void) applicationDidFinishLaunching:(UIApplication*)application
y -(void) applicationWillEnterForeground:(UIApplication*)application
. Ich habe mich auch für Fernbenachrichtigungen in - (void) applicationDidFinishLaunching:(UIApplication*)application
bevor Sie den obigen Code ausführen, um den Ausweis zu löschen.
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge)];
Wenn ich die App starte und dann zum Startbildschirm zurückkehre, sehe ich, dass das Abzeichen der App gelöscht wurde, aber es kehrt innerhalb von ein oder zwei Sekunden zu genau demselben Wert zurück, den es vor dem Löschen hatte.
Ich selbst verwende keine lokalen oder Push-Benachrichtigungen, sondern GameKit verwendet sie, weil es sich um ein rundenbasiertes Spiel handelt. Wenn bestimmte Ereignisse eintreten (z. B. wenn der lokale Spieler in einem Spiel an der Reihe ist), wird eine Push-Benachrichtigung an sein Gerät gesendet.
Was könnte ich falsch machen?