iOS本地通知/后台活动

iOS本地通知/后台活动,ios,background-process,uilocalnotification,Ios,Background Process,Uilocalnotification,我的AppDelegate.m ApplicationIdentinterBackground中有下面的代码,它将在关闭应用程序10秒后显示本地通知 但是,我希望包含的时间戳和任何其他数据都是创建通知时的数据 我希望能够在显示通知时显示最新数据,而不是在创建通知时显示数据 我可以通过通知来实现这一点,还是需要通过后台活动来实现这一点?如果是这样,我该怎么称呼/如何安排这项活动 NSDate *currentTime = [NSDate date]; NSDateFormatter *dateFo

我的AppDelegate.m ApplicationIdentinterBackground中有下面的代码,它将在关闭应用程序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];
}

抱歉,您无法在本地通知中显示动态数据。若那个些动态数据来自服务器,那个么我建议使用推送通知并用那个些动态数据构建它们的消息


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

它实际上是一个步进计数器。我想做的是安排一个每日通知,显示前一天完成的步骤数。然而,要做到这一点,我需要获取最新的数据,而不是上次发布时的数据。我知道有些应用程序需要唤醒以收集最新数据并将其保存到历史记录等,那么我如何才能做到这一点?每天唤醒应用程序一次,最多1秒或2秒,获取最新数据并发布通知,然后保存最新数据!。你能给出一些应用程序如何计算步数的细节吗?它只在前景中计算它们吗?现在,我想你们应该尝试使用位置背景模式,然后在位置更新时决定应用程序是否应该安排本地通知我正在使用CMCoreMotion CMStepCounter。所以它一直在收集数据,我只是在前台更新显示并进行相关计算。因此,数据是可用的,但我需要在设置本地通知之前对其进行处理。我再次查看了iOS应用程序背景模式,但没有找到任何信息,说明应该使用什么模式来获取核心运动更新。我建议就此事向苹果提交一份支持票。谢谢。真奇怪,不是吗?我想也许你是对的。在这里或其他任何地方似乎都没有明确的答案。似乎有“黑客”,但当核心运动等功能存在时,你会认为他们会允许在后台使用它?!