iOS本地通知/后台活动

时间:2014-01-02 16:12:40

标签: ios background-process uilocalnotification

我的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];
}

1 个答案:

答案 0 :(得分:0)

AFAIK您无法在本地通知中显示动态数据。如果该动态数据来自服务器,那么我建议使用推送通知并使用该动态数据构建其消息。

如果您的应用是VoIP或基于位置的应用,您可以使用相应的后台模式,然后在轮询新数据后立即安排本地通知。