【发布时间】:2014-01-28 13:17:23
【问题描述】:
我正在使用 UILocalNotification。我的应用程序将让用户方便地为我的应用程序中的任何会议和药物设置提醒。
我能够根据我的计划日期来安排 UINotification。而且当用户安排过去的日期通知时,我的第二个安排通知不会被触发。在 secound 之后,其他人射击完美,但 secound 没有射击。
以下是我的通知流程:
我正在为会议创建 3 个日程安排,其中一个时间已超过我当前的时间,例如: 2014-01-28 18:00。而我当前的设备时间是2014-01-28 19:00。现在我正在创建另一个时间表,它的时间是 2014-01-28 19:10。另一个计划日期和时间是 2014-01-28 19:20。
使用上述计划日期时间参考,我的第一个过去日期的通知在计划创建后被触发。
当我当前的设备时间来到 2014-01-28 19:10.我正在等待通知。但它不会着火。
在 2014 年 1 月 28 日 19:20,我的第三个通知会定期触发。每次我将过去的日期添加为日程表时,都会发生这种情况。
以下是我用来安排通知的日程通知代码:
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = fireDate;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertBody = alertText;
localNotification.alertAction = alertAction;
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.alertLaunchImage = launchImage;
localNotification.applicationIconBadgeNumber = 1;
localNotification.userInfo = userInfo;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
[[UIApplication sharedApplication]registerForRemoteNotificationTypes:
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeSound];
以下是我的 idReceiveLocalNotification: 处理通知的方法:
if([UIApplication sharedApplication].applicationIconBadgeNumber == 0) {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
}else{
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}
当我收到通知时,我会调用 MkLocalNotificationScheduler 类来显示警报,代码如下:
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Reminder"
message:[thisNotification alertBody]
delegate:self
cancelButtonTitle:@"NO"
otherButtonTitles:@"YES",nil] autorelease];
alert.tag = 1;
[alert performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];
请帮助我如何处理所有日程安排通知天气它已经过去或尚未到来的日期。
【问题讨论】: