Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 995881
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T06:47:28+00:00 2026-05-16T06:47:28+00:00

This is the section from the CLLocationManager documentation describing the app behavior with startMonitoringSignificantLocationChanges

  • 0

This is the section from the CLLocationManager documentation describing the app behavior with startMonitoringSignificantLocationChanges:

If you start this service and your
application is subsequently
terminated, the system automatically
relaunches the application into the
background if a new event arrives. In
such a case, the options dictionary
passed to the
application:didFinishLaunchingWithOptions:
method of your application delegate
contains the key
UIApplicationLaunchOptionsLocationKey
to indicate that your application was
launched because of a location event.
Upon relaunch, you must still
configure a location manager object
and call this method to continue
receiving location events. When you
restart location services, the current
event is delivered to your delegate
immediately. In addition, the location
property of your location manager
object is populated with the most
recent location object even before you
start location services.

So my understanding is that if your app terminates (and I assume if you don’t call stopMonitoringSignificantLocationChanges from applicationWillTerminate) you will get woken up with a UIApplicationLaunchOptionsLocationKey parameter to application:didFinishLaunchingWithOptions. At that point you create your CLLocationManager, call startMonitoringSignificantLocationChanges and do your background location processing for a limited time. So I am fine with this bit.

The previous paragraph only talks about what happens when the app is terminated, it doesn’t suggest what you do when the application is suspended. The documentation for didFinishLaunchingWithOptions says:

The application tracks location
updates in the background, was purged,
and has now been relaunched. In this
case, the dictionary contains a key
indicating that the application was
relaunched because of a new location
event.

Suggesting that you will only receive this call when your app is launched (because of a location change) after you have been terminated.

However the paragraph on the Significant Change Service in the Location Awareness Programming Guide has the following to say:

If you leave this service running and
your application is subsequently
suspended or terminated, the service
automatically wakes up your
application when new location data
arrives. At wake-up time, your
application is put into the background
and given a small amount of time to
process the location data. Because
your application is in the background,
it should do minimal work and avoid
any tasks (such as querying the
network) that might prevent it from
returning before the allocated time
expires. If it does not, your
application may be terminated.

This suggests you are woken up with location data if your app has been suspended, but fails to mention how you are woken up:

  • Does the UIApplicationDelegate get a callback telling me that I am resuming from a suspended state into a background state?
  • Does the location manager (that was freeze dried when the app was suspended) start receiving locationManager:didUpdateToLocation:fromLocation callbacks?
  • Do I just need to implement code in my didUpdateToLocation message which checks the application state and does minimal processing if in background mode?

In the process of writing this up, I think I may have just answered my own question, but it would be great to have my understanding of this confirmed by someone more knowledgeable.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T06:47:29+00:00Added an answer on May 16, 2026 at 6:47 am

    Since I asked this question, I have done a fair bit of testing (mostly on the train between home and work) and have confirmed that the behaviour for suspended apps is as I suspected at the end of the question.

    That is, your suspended app is woken up, you don’t receive any callbacks on your app delegate, instead you receive your location updates through your existing CLLocationManagerDelegate. You can detect that you are running in the background by checking the applicationState, and do limited work for the case where you are woken from a suspended state to do location processing.

    [UIApplication sharedApplication].applicationState == UIApplicationStateBackground
    

    I came to this conclusion with a location test harness that you are welcome to download and try out. It is a pretty simple app that allows you to turn on significant change and GPS change APIs through the UI and log all the responses that you get back.

    N.B. Point six in the previous answer is not correct. Freeze dried suspended apps do receive CLLocationManagerDelegate callbacks when they are woken up from a suspended state.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 499k
  • Answers 500k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer This is not pretty but it works: rm -R $(ls… May 16, 2026 at 12:45 pm
  • Editorial Team
    Editorial Team added an answer Yes. Override the base1 and base2 methods in Derived to… May 16, 2026 at 12:45 pm
  • Editorial Team
    Editorial Team added an answer No, you can't. Unfortunately, UIEvent doesn't expose any public way… May 16, 2026 at 12:45 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Related Questions

Having a little bit of trouble with this section of code: if(!empty($_POST['RemoveRequest']) && isset($_POST['RemoveRequest'])){
Ideally, this would be draggable, and you'd be able to drag stuff from one
How can I extract certain variables from a specific range of lines in sed/awk?
For simplicity, a Section object contains the following properties: SectionId ParentSectionId Name I currently
I have a UITableView with 2 sections. The section 0 contains a list of
I need to pre-load some values from a php script, I'm using a $.post
Following situation: Parent: namespace Base; /** @Entity @Table(name=section) */ class Section extends Skeleton {
I am trying to grab the data from the database and display all the
I have a supposedly single-threaded FLTK application with a popup menu, created with Fluid.
Let presume we have something like this: <div1> <h1>text1</h1> <h1>text2</h1> </div1> <div2> <h1>text3</h1> </div2>

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.