我开发了一款在后台运行良好的应用,因为我正在使用GPS
服务。在
app NSTimer
在IPhone 4
和IPhone 4s
的后台运行正常。
当应用处于后台时,如何暂停IPhone5
。
我用于NSTimer
的代码是
repeatTimer5 = [NSTimer scheduledTimerWithTimeInterval:1.0 target: self
selector: @selector(toupdate) userInfo: nil repeats: YES];
[[NSRunLoop currentRunLoop]addTimer:repeatTimer5 forMode: NSDefaultRunLoopMode];
有没有人遇到同样的问题?
答案 0 :(得分:0)
使用此: 当应用程序在AppDelegate委托方法中输入后台时触发您的计时器:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
if(!repeatTimer5.isValid)
{
repeatTimer5 = [NSTimer scheduledTimerWithTimeInterval:1.0 target: self
selector: @selector(toupdate) userInfo: nil repeats: YES];
}
}
- (void)toupdate
{
DLog(@"Testing timer Fired");
}
当应用程序在前台移动时,这将触发您的计时器方法,并在应用程序在后台移动时恢复。
如果仍需要此计时器将在后台模式下触发,则启动BackgroundTask
- (void)applicationDidEnterBackground:(UIApplication *)application
{
if(!repeatTimer5.isValid)
{
[application beginBackgroundTaskWithExpirationHandler:^{
//your background expiration handler method
}];
repeatTimer5 = [NSTimer scheduledTimerWithTimeInterval:1.0 target: self
selector: @selector(toupdate) userInfo: nil repeats: YES];
}
}
- (void)toupdate
{
DLog(@"Testing timer Fired");
}
当你的应用程序处于后台时,这将启动你的计时器