ios后台任务定时器
Posted
技术标签:
【中文标题】ios后台任务定时器【英文标题】:ios background task timer 【发布时间】:2015-10-23 07:43:55 【问题描述】:我正在设计一个应用程序,需要在特定时间以后台模式向服务器发送数据。所以我想知道: 应用程序是否可以在我安排后 24 小时执行一段代码(仅一次)?
非常感谢!
【问题讨论】:
如果在同一时间配置了时间表,则可能! :)NSTimer
在后台不起作用,只有当您的应用程序使用一种后台模式时,它才能在后台执行任何操作。您可以使用某种静默推送通知的后台刷新。
【参考方案1】:
在NSUserDefaults
中存储日期,然后再检查 24 小时 ..
NSDate *date = [[NSUserDefaults standardUserDefaults] objectForKey:@"CONSCIENCE_START_DATE"];
if (!date)
// This is the 1st run of the app
date = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:date forKey:@"CONSCIENCE_START_DATE"];
NSString *str = [NSString stringWithFormat:@"%@",date];
NSLog(@" date string = %@",str);
NSTimeInterval secondsBetween = [[NSDate date] timeIntervalSinceDate:date]; // in seconds
int numberOfHours = secondsBetween / 3600; // convert in hours
NSLog(@"There are %d hours in between the two dates.", numberOfHours);
if (numberOfHours > 24)
// do your code here ...
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"CONSCIENCE_START_DATE"];
希望对你有帮助。
【讨论】:
以上是关于ios后台任务定时器的主要内容,如果未能解决你的问题,请参考以下文章