在iOS中安排本地通知和时区更改



我的应用程序中有这个方法来触发计划的本地通知:

- (void)scheduleNotificationForTime:(long long)atTime
{
   NSDate *fireDate = [DatesMngr getDateFromLongLong:atTime];
   UILocalNotification *localNotif = [[UILocalNotification alloc] init];
   if (localNotif == nil)
       return;
   localNotif.fireDate = fireDate;
   localNotif.timeZone = [NSTimeZone localTimeZone];
   localNotif.alertBody = @"Active Status";
   localNotif.alertAction = @"View Details";
   localNotif.applicationIconBadgeNumber = 1;
   [[UIApplication sharedApplication] cancelAllLocalNotifications];
   [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
}

如果用户不在设备的"设置"中更改时区,则可以正常工作,但如果用户在已安排但尚未启动时区后更改时区,将不会启动通知。我也尝试过[NSTimeZone defaultTimeZone],但没有成功。是否有任何方法可以检测这些时区更改并刷新fireDate以获取已安排的本地通知?

感谢

有两种方法

  1. 在appdelegate中实现以下方法
  • (void(应用程序显著时间更改:(UIApplication*(应用程序

2.在通知中心中注册UIApplicationSignificantTimeChangeNotification

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleTimeChange:)]

相关内容

  • 没有找到相关文章