我的AppDelegate.m applicationDidEnterBackground中有以下代码,它会在关闭应用程序10秒后显示本地通知。
但是,时间戳(以及我想要包含的任何其他数据)是创建通知时的任何数据。
我希望能够在显示通知时显示最新数据,而不是创建时的数据。
我可以使用通知执行此操作,还是需要对后台活动执行某些操作?如果是这样,我该怎么称呼/如何安排该活动?
NSDate *currentTime = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh-mm-ss"];
NSString *resultString = [dateFormatter stringFromDate: currentTime];
NSLog([NSString stringWithFormat:@"Time: %@",resultString]);
NSDate *alertTime = [[NSDate date]
dateByAddingTimeInterval:10];
UIApplication* app = [UIApplication sharedApplication];
UILocalNotification* notifyAlarm = [[UILocalNotification alloc]
init];
if (notifyAlarm)
{
notifyAlarm.fireDate = alertTime;
notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
notifyAlarm.repeatInterval = 0;
notifyAlarm.alertBody = resultString;
[app scheduleLocalNotification:notifyAlarm];
}
答案 0 :(得分:0)
AFAIK您无法在本地通知中显示动态数据。如果该动态数据来自服务器,那么我建议使用推送通知并使用该动态数据构建其消息。
如果您的应用是VoIP或基于位置的应用,您可以使用相应的后台模式,然后在轮询新数据后立即安排本地通知。