Sean Danzeiser
Sean Danzeiser

Reputation: 9243

NSTimer while in background mode is working -- but shouldn't it NOT be working?

I've opted in to background location updates in an App I'm working on.

In my LocationManager class, I've got a method that looks like this:

- (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];
}

The method -updateWithLastKnownLocation potentially calls beginUpdateTimer again.

In testing my app, I've discovered that the timer continues to fire upon the app moving in to the background, so long as I've enabled background location updates. Shouldn't this NOT be happening though? Can I rely on this?

Thanks!

Upvotes: 0

Views: 104

Answers (1)

matt
matt

Reputation: 535202

Yes, you can rely on it, provided the timer was running at the time you went into the background.

Upvotes: 2

Related Questions