我正在尝试在后台线程中运行该进程。我希望这个过程在60秒内完成并再次开始运行。无论应用程序是在前台还是后台。我不知道如何实现以及在哪里实现它。我正在使用ios7.在这个过程中我也在进行位置更新。
我读到了后台任务,但没有正确理解这个过程。有人能为我提供良好的资源或链接吗?
答案 0 :(得分:0)
ios没有为后台进程提供这样的api,不像使用服务的android那样。你可以使用 timer 进行连续后台进程。还有 dispatch_async,后台选择器< / strong>用于高效的后台处理。
希望这有帮助。
答案 1 :(得分:0)
你可以使用这样的东西进行后台处理,但记住苹果已经限制了10-15分钟来完成处理。
UIApplication* app = [UIApplication sharedApplication];
task = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:task];
task = UIBackgroundTaskInvalid;
}];
// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do the work associated with the task.
NSLog(@"Started background task timeremaining = %f", [app backgroundTimeRemaining]);
if (connectedToNetwork) {
// do work son...
}
[app endBackgroundTask:task];
task = UIBackgroundTaskInvalid;
});
您还可以查看以下内容:
**BOOL backgroundSupported = NO;
if ([device respondsToSelector:@selector(isMultitaskingSupported)])
backgroundSupported = device.multitaskingSupported;**