将旧的推送通知从通知中心移除掉
不逐字翻译了,只是大体说一下。
看作者的意思,应该是他经常收到N多通知,而通过其中一条通知打开一个app以后,发现那个app的其它通知还在通知中心。作者不喜欢这样的情况。我以为
我也存在的这样的情况,马上检查了一下,发现没有。看来是少数app的问题。但是也记录一下。作者总结的从通知中心移除通知的三种方法:
1.将app的BadgeNumber设为0,就是app图标右上角那个
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
2.如果BadgeNumber本身就是0的情况,可以先将其设1再设置成0
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
3.如果以上的办法都不好使的话,那就用本地通知欺骗一下。
UIApplication* application = [UIApplication sharedApplication];
NSArray* scheduledNotifications = [NSArray arrayWithArray:application.scheduledLocalNotifications];
application.scheduledLocalNotifications = scheduledNotifications;
NSArray* scheduledNotifications = [NSArray arrayWithArray:application.scheduledLocalNotifications];
application.scheduledLocalNotifications = scheduledNotifications;
就这么多了,我仔细想了一下,为什么我的应用从其中一条通知打开的时候,其它的通知消失掉:
因为我在程序启动的时候就执行了第一条:)