我有一个要求,我需要每隔一天或每两天提醒用户一次,依此类推,即使应用程序没有运行。
我检查了UILocalNotfication类,其中我们有一个属性:repeatInterval。在这里,我们可以传递以下值之一:
NSEraCalendarUnit = kCFCalendarUnitEra,
NSYearCalendarUnit = kCFCalendarUnitYear,
NSMonthCalendarUnit = kCFCalendarUnitMonth,
NSDayCalendarUnit = kCFCalendarUnitDay,
NSHourCalendarUnit = kCFCalendarUnitHour,
NSMinuteCalendarUnit = kCFCalendarUnitMinute,
NSSecondCalendarUnit = kCFCalendarUnitSecond,
NSWeekCalendarUnit = kCFCalendarUnitWeek,
NSWeekdayCalendarUnit = kCFCalendarUnitWeekday,
NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal,
NSQuarterCalendarUnit = kCFCalendarUnitQuarter,
NSWeekOfMonthCalendarUnit = kCFCalendarUnitWeekOfMonth,
NSWeekOfYearCalendarUnit = kCFCalendarUnitWeekOfYear,
NSYearForWeekOfYearCalendarUnit = kCFCalendarUnitYearForWeekOfYear
NSCalendarCalendarUnit = (1 << 20),
NSTimeZoneCalendarUnit = (1 << 21)
因此,如果我需要每天安排通知,我可以使用NSDayCalendarUnit,但我发现没有办法安排它。
如果应用程序正在运行,我可以在 applicationDidRecieveLocalNotification
中触发一个新的通知,并将 fireDate 作为[[NSDate date] dateByAddingTimeInterval:48*60*60]
,但就我而言,即使应用程序没有运行,我也需要支持它:-(
请指教。
答案是你不能,我已经遇到过这个问题,我真的很失望。实际上,我已经解决了(以某种方式)在每次打开应用程序时重新安排本地通知的问题。我的解决方案基于以下假设:用户将在第一个通知和最后一个
通知之间的时间间隔内使用该应用程序
- 我创建了一定数量的通知(每个应用程序限制为 64 个),通常为 10 个
- 当用户打开应用程序时,我重新安排它们,但始终保持相同的数量。假设 3 个已经被解雇,我只重新安排了 3 个被解雇的