Iphone UILocalNotification:在repeatInterval期间更新BadgeNumber
在盯着眼睛看了两天之后,我找不到任何解决方案,好像每个人(除了我)都清楚一样 我需要:Iphone UILocalNotification:在repeatInterval期间更新BadgeNumber,iphone,objective-c,xcode,uilocalnotification,Iphone,Objective C,Xcode,Uilocalnotification,在盯着眼睛看了两天之后,我找不到任何解决方案,好像每个人(除了我)都清楚一样 我需要: Alert.applicationIconBadgeNumber = x 要在每次发出通知时在后台更新,我将通过以下方式重复通知: notif.repeatInterval = NSMinuteCalendarUnit 每1米重复一次效果很好。当应用程序进入后台,但徽章号码没有更新时,它只接受第一次更新的日期值 我正在通过viewDidLoad调用scheduleNotification方法 这是
Alert.applicationIconBadgeNumber = x
要在每次发出通知时在后台更新,我将通过以下方式重复通知:
notif.repeatInterval = NSMinuteCalendarUnit
每1米重复一次效果很好。当应用程序进入后台,但徽章号码没有更新时,它只接受第一次更新的日期值
我正在通过viewDidLoad调用scheduleNotification方法
这是我的全部代码:
请告知如何修复,谢谢大家。由于操作系统会在计划时复制通知,因此通知中的数据不会更新,因此应用程序标记号不会更改 也许,如果您不重复通知,而是为每个时间间隔生成自己的新通知,它将为您提供所需的行为。我能想到的生成通知的唯一方法是在scheduleNotification方法中发布一堆通知,然后记住在用户以正确的方式响应时删除通知。由于操作系统只记得下一个按时间顺序安排的64个通知,因此您只能安排大约一个小时的时间。由于您的徽章号码似乎是当前日期,您可以查看时间,只有在午夜后一小时内,才需要设置这么多通知
我不明白你这么频繁地唠叨用户,也不告诉他们徽章号码上的日期,你想达到什么目的。任何让我如此烦恼或滥用徽章号码的应用程序都会很快从我的iOS设备上删除。也许重新思考您试图实现的目标可以指导您找到更好的解决方案。我知道这已经得到了回答,但您可以使用NSUserDefaults作为缓存徽章计数的方法。然后在
applicationBadgeNumber
中,您可以使用如下内容:
notif.applicationIconBadgeNumber = ([NSUserDefaults standardUserDefaults] integerForKey:@"badgeCount"] + 1);
然后,当用户做出相应响应时,您可以将其重置。谢谢伯纳先生,但在后台时,我无法及时生成新通知。我尝试使用NSTimer,但没有在(ApplicationIdentinterBackground)中调用它。有什么建议吗?再次感谢你,我的朋友,你的建议是唯一的办法,我会试试看。关于您的评论:分钟通知仅用于测试目的,最终通知将每天进行。我还要感谢你把我的注意力转移到了64位。问题,这也是我一直在寻找的。又是thx。你能写一些代码行吗?我尝试了你的解决方案,但没有成功。@hafedh当然,我很乐意提供帮助,但请你打开一个新问题,详细说明你正在尝试做什么,然后将链接发布到这里。非常感谢,以下是全部内容:
notif.applicationIconBadgeNumber = ([NSUserDefaults standardUserDefaults] integerForKey:@"badgeCount"] + 1);