0

我正在排队本地通知并将徽章计数设置为 1。

如果我排队几个然后退出应用程序,那么当他们触发每个应用程序时,将徽章计数设置为 1,而不是增加它。即假设我排队 3,然后在他们全部触发后,应用程序上的徽章计数将显示为 1。

有没有一种方法可以在每次触发时使徽章计数增加一?

设置通知时检查 applicationIconBadgeNumber 不是一个选项 - 因为考虑这样的场景:

应用程序安排通知 A 1 分钟,当前徽章计数为 0,因此 notification.count = 1

应用程序安排通知 B 10 分钟,最后一个徽章计数为 1,因此 notification.count = 2

应用程序安排通知 C 5 分钟,最后一个徽章计数为 2,因此 notification.count = 3

但是通知 C 在 B 之前触发,因此当它触发时,徽章计数将设置为 3,这是不正确的,然后当 B 触发时,计数变为 2,这也是不正确的。

如果没有自动增加计数的方法,那么应用程序将不得不实现一个复杂的方案,在该方案中它会记住排队的所有内容以及每个的时间。有简单的方法吗?

4

1 回答 1

1
int num = [[UIApplication sharedApplication]applicationIconBadgeNumber];

    if (num == 0) {
         [[UIApplication sharedApplication]setApplicationIconBadgeNumber:1];
    }

    else if (num >= 1) {
        [[UIApplication sharedApplication]setApplicationIconBadgeNumber:num + 1];
    }

我认为这将解决它。

于 2012-06-29T14:29:18.673 回答