uilocalnotification is not firing at exact time

混江龙づ霸主 提交于 2019-12-01 06:49:16

问题


I want to implement uilocalnotification in my app. but the problem is that it is not firing at the exact time. it is firing after 30 - 40 secs from the given firing time. Is there something I am missing or this is a common think in UILocalNotification.

Thanks


回答1:


UILocalNotification is designed for things that are happening far in the future so an error of 30 seconds would be OK (i.e. if I had a meeting at 15:00 then telling me at 15:00:30 wouldn't be a problem :)

If you want more accuracy than that you will need to keep your app running and use an NSTimer.




回答2:


I know this is an old question, but I have just figure this out, you can use the dateByAddingTimeInterval : method.

notif.fireDate = [[datePicker date] dateByAddingTimeInterval:-30];



回答3:


You can set fireDate by using NSDateComponents, in which you can set seconds for firedate. When I set it to 0 doesn't work, but it works if I set it to 1 seconds. 1 second late will be OK compared to 30-40 seconds.

NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *dateComps = [cal components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay |NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond   fromDate:fireDate];
    [dateComps setSecond:1];
    [dateComps setNanosecond:00];
    NSDate *newDate = [cal dateFromComponents:dateComps];
    fireDate = newDate;


来源:https://stackoverflow.com/questions/5064460/uilocalnotification-is-not-firing-at-exact-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!