2014-03-04 88 views
0

我有一個要求,即在應用程序未運行的情況下,我需要在每天或每兩天後提醒用戶說。1天,2天,3天后的UILocalNotification

我檢查了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],但對我來說,我需要支持它,即使應用程序沒有運行:-(

請建議。

+0

除非您設置您的應用程序來做後臺處理,否則這是不可能的。這可能不是使用後臺處理的合理原因(在Apple的眼中)。我建議您在應用程序運行時(一天,兩天,一週等)設置所需的所有提醒,以及何時/如果用戶返回到您的應用程序,您將刪除將來仍然存在的任何通知再次設置新的通知。 – ysalmi

回答

1

答案是你不能,我已經遇到了這個問題,我真的很失望,實際上我已經解決了(不知何故)每次打開應用程序時重新安排本地通知。我的解決方案是基於假設用戶將在第一個notif和最後一個
之間的間隔內使用該應用程序

  • 我創建了一個數量的通知(限制是64per應用程序),通常10
  • 當用戶打開應用程序我重新安排他們,但始終保持相同的金額。假設3個已經被解僱,我只重新安排了3個被解僱的人員。