我试过这个但在iOS 7和Xcode 4.6.2中的工作时间不超过180秒。请帮帮我
UIBackgroundTaskIdentifier bgTask = UIBackgroundTaskInvalid;
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:20 target:self selector:@selector(timerMethod) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
-(void) timerMethod{
NSLog(@"in timerMethod");
}
答案 0 :(得分:11)
除非您启用其中一个Background modes
,否则无法使用。
在ios停止计时器后,你有大约10分钟的后台执行时间。
应用程序被锁定后,计时器不会启动(iOS7),因为ios会暂停前台应用程序而bgTask
不会再次开火。
有一些解决方法,请考虑检查以下问题:
iphone - NSTimers in background