Ios 后台模式下的NSTimer正在工作,但不应';这不管用吗?
我选择了在我正在开发的应用程序中进行后台位置更新 在LocationManager类中,我有一个如下所示的方法:Ios 后台模式下的NSTimer正在工作,但不应';这不管用吗?,ios,core-location,Ios,Core Location,我选择了在我正在开发的应用程序中进行后台位置更新 在LocationManager类中,我有一个如下所示的方法: - (void)beginUpdateTimer { [self.updateTimer invalidate]; self.updateTimer = [NSTimer timerWithTimeInterval:ForceUpdateDuration target:sel
- (void)beginUpdateTimer
{
[self.updateTimer invalidate];
self.updateTimer = [NSTimer timerWithTimeInterval:ForceUpdateDuration
target:self
selector:@selector(updateWithLastKnownLocation)
userInfo:nil
repeats:NO];
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
[runloop addTimer:_updateTimer forMode:NSRunLoopCommonModes];
}
方法-updateWithLastKnownLocation
可能再次调用beginUpdateTimer
在测试我的应用程序时,我发现只要启用了后台位置更新,当应用程序移到后台时,计时器就会继续启动。这不应该发生吗?我能相信这个吗
谢谢 是的,你可以信赖它,只要你进入后台时计时器正在运行。意味着你希望当应用进入后台时计时器应该停止?否,我很高兴它正在执行计时器--但是--我的印象是,这在iOSWell上是不受支持的,它是受支持的。查看更多信息。太好了--你知道这是在哪里偶然记录的吗?我现在正在努力找到它。我的印象是,在系统唤醒您处理位置代理回调之前,您将被暂停。我的记忆是,他们在一两年前的WWDC视频中说过这句话(因为他们已经更改了它-在此之前,当您进入后台时,您的计时器确实会停止),但我没办法找到比这更具体的东西。在堆栈溢出的背景中有很多关于NSTimer的内容,所以请进行一些搜索…只有在plist后台模式中提供了
位置键时,应用程序才会暂停。@progrmr不相关(尽管是真的)。问题是计时器继续在后台运行。应用程序本身未在后台挂起是给定的。计时器在应用程序未挂起时运行。应用程序挂起时计时器停止。