Ios 后台模式下的NSTimer正在工作,但不应';这不管用吗?

Ios 后台模式下的NSTimer正在工作,但不应';这不管用吗?,ios,core-location,Ios,Core Location,我选择了在我正在开发的应用程序中进行后台位置更新 在LocationManager类中,我有一个如下所示的方法: - (void)beginUpdateTimer { [self.updateTimer invalidate]; self.updateTimer = [NSTimer timerWithTimeInterval:ForceUpdateDuration target:sel

我选择了在我正在开发的应用程序中进行后台位置更新

在LocationManager类中,我有一个如下所示的方法:

- (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不相关(尽管是真的)。问题是计时器继续在后台运行。应用程序本身未在后台挂起是给定的。计时器在应用程序未挂起时运行。应用程序挂起时计时器停止。