我有一个很大的问题!我的问题是,我在我的委托中实现了一个本地通知代码。我在didEnterBackround方法中输入了这段代码。但是,我为每个didEnterBackround获得了localnotifi。如果最新消息消失,是否有可能只启动新通知?就像我有一个localnotifi,在5天后发射。当我打开和关闭应用程序5次并等待5天后,我得到5个本地通知。是否有可能让应用程序只生成一个被激活的东西,然后出现一个新的获得startet?!
我的代码:
NSCalendar *calender = [NSCalendar autoupdatingCurrentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *dateComponents = [calender components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:currentDate];
NSDateComponents *timeComponents = [calender components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:currentDate];
NSDateComponents *temp = [[NSDateComponents alloc]init];
[temp setYear:[dateComponents year]];
[temp setMonth:[dateComponents month]];
[temp setDay:[dateComponents day]];
[temp setHour:[timeComponents hour]];
[temp setMinute:[timeComponents minute]];
[temp setSecond:[timeComponents second] +10];
NSDate *fireTime = [calender dateFromComponents:temp];
UILocalNotification *localN = [[UILocalNotification alloc]init];
localN.fireDate = fireTime;
localN.timeZone = [NSTimeZone defaultTimeZone];
localN.alertBody = @"BLA BLA BLA!";
localN.alertAction = @"GO BACK";
localN.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localN];
答案 0 :(得分:4)
您可以取消所有预定的通知:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
如果您不想删除所有预定通知(可能还有其他预定的通知),请查看cancelLocalNotification:
,它允许您只取消一个实例。