每天 5 条本地通知
Posted
技术标签:
【中文标题】每天 5 条本地通知【英文标题】:5 local notifications every day 【发布时间】:2015-06-27 23:42:18 【问题描述】:我想每天有5个本地通知,这是我用来触发本地通知的代码,一切都很酷,但是如果第一个通知出来,如果我运行APP前台,那么另一个通知就会不出来。即使我运行APP前台,请帮助保留所有通知。 ????
UILocalNotification* n1 = [[UILocalNotification alloc] init];
NSCalendar *c1 = [NSCalendar currentCalendar]; // gets default calendar
NSDateComponents *co1 = [c1 components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:[NSDate date]]; // gets the year, month, day,hour and minutesfor today's date
[co1 setHour:15];
[co1 setMinute:54];
n1.fireDate = [c1 dateFromComponents:co1];
n1.alertBody = @"3:54";
n1.soundName = @"alarm.wav";
n1.timeZone = [NSTimeZone defaultTimeZone];
n1.alertAction= @"3:54";
[[UIApplication sharedApplication] scheduleLocalNotification: n1];
UILocalNotification* n2 = [[UILocalNotification alloc] init];
NSCalendar *c2 = [NSCalendar currentCalendar]; // gets default calendar
NSDateComponents *co2 = [c2 components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:[NSDate date]]; // gets the year, month, day,hour and minutesfor today's date
[co2 setHour:15];
[co2 setMinute:55];
n2.fireDate = [c2 dateFromComponents:co2];
n2.alertBody = @"3:55";
n2.soundName = @"alarm.wav";
n2.timeZone = [NSTimeZone defaultTimeZone];
n2.alertAction= @"3:55";
[[UIApplication sharedApplication] scheduleLocalNotification: n2];
UILocalNotification* n3 = [[UILocalNotification alloc] init];
NSCalendar *c3 = [NSCalendar currentCalendar]; // gets default calendar
NSDateComponents *co3 = [c3 components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:[NSDate date]]; // gets the year, month, day,hour and minutesfor today's date
[co3 setHour:15];
[co3 setMinute:56];
n3.fireDate = [c3 dateFromComponents:co3];
n3.alertBody = @"3:56";
n3.soundName = @"alarm.wav";
n3.timeZone = [NSTimeZone defaultTimeZone];
n3.alertAction = @"3:56";
[[UIApplication sharedApplication] scheduleLocalNotification: n3];
UILocalNotification* n4 = [[UILocalNotification alloc] init];
NSCalendar *c4 = [NSCalendar currentCalendar]; // gets default calendar
NSDateComponents *co4 = [c4 components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:[NSDate date]]; // gets the year, month, day,hour and minutesfor today's date
[co4 setHour:15];
[co4 setMinute:57];
n4.fireDate = [c4 dateFromComponents:co4];
n4.alertBody = @"3:57";
n4.soundName = @"alarm.wav";
n4.timeZone = [NSTimeZone defaultTimeZone];
n4.alertAction = @"3:57";
[[UIApplication sharedApplication] scheduleLocalNotification: n4];
UILocalNotification* n5 = [[UILocalNotification alloc] init];
NSCalendar *c5 = [NSCalendar currentCalendar]; // gets default calendar
NSDateComponents *co5 = [c5 components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate:[NSDate date]]; // gets the year, month, day,hour and minutesfor today's date
[co5 setHour:15];
[co5 setMinute:58];
n5.fireDate = [c5 dateFromComponents:co5];
n5.alertBody = @"3:58";
n5.soundName = @"alarm.wav";
n5.timeZone = [NSTimeZone defaultTimeZone];
n5.alertAction = @"3:58";
[[UIApplication sharedApplication] scheduleLocalNotification: n5];
【问题讨论】:
【参考方案1】:如果您的应用在foreground
中没有通知,但会调用以下方法,
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
首先您应该通过附加在其中的userinfo
来识别通知。(如果您还没有给出,请给每个通知提供userinfo
。)
当您在此方法中接到电话时显示任何警报。
【讨论】:
以上是关于每天 5 条本地通知的主要内容,如果未能解决你的问题,请参考以下文章