我想继续在前台和后台运行我的流程。我已经实现了以下代码
self.updateTimer = [NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(repeatedMethod)
userInfo:nil
repeats:YES];
self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"Background handler called. Not running background tasks anymore.");
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
}];
在前景中它很好,但是在后台进程中运行的时间仅为5分钟而且运行速度不超过5分钟。但我希望它在背景中也能连续运行。请帮助。
答案 0 :(得分:1)
这就发生了,因为在5分钟后调用了completionHandler。在iOS中使用UIBackgroundModes之前,你无法在iOS中无限期地运行后台进程,而且依赖于你必须提供BackgroundMode的功能如果你在你的申请中使用它,否则苹果会拒绝它。
例如,如果您使用“VoiP”BackgroundMode,您的应用程序应提供“VoiP服务”,否则将被拒绝