Using location-based information in your app is a great way to keep the user connected to the surrounding world. Follow best practices to optimize use of location services for energy efficiency. Doing so automatically stops location services once the request has been fulfilled, letting location hardware power down if not being used elsewhere. Location updates requested in this manner are delivered by a callback to the locationManager:
Walkthrough - Background Location in Xamarin.iOS
objective c - iOS 9 - LocationManager updating locations too frequently - Stack Overflow
The Core Location Framework in iOS worked over the years in almost the same way, in some version updates Apple may have changed the delegate methods, but all in all the process always stayed the same. Until iOS 8, this is how a simple location retrieving process would look like. As stated above, in iOS 8 they are new steps that we need to pay attention to in order make make the location fetching work. Each of these Strings has a corresponding authorization method that needs to be called, WhenInUse or Alway i. And here is a full implementation example in case of using the Always key String i. As you probably already noticed, the keys and method names, give a pretty clear idea on should be the one or the other used. The WhenInUse key allows the app to receive location updates only when the app is in the foreground.
Starting location updates in background
The use case is that a user gets to a certain predefined starting point determined by region monitoring for a regular journey and then the app tracks that journey till it is ended, without need for user interaction. In my testing so far, if I call startUpdatingLocation from within didEnterRegion the updates stop within 10 seconds which I presume is the standard background window for processing a location event. I need those updates to continue until they are explicitly turned off. I have also experimented with switching on SLC followed by standard location but also with no luck.
I'm looking for a way to get a background location update every n minutes in my iOS application. I'm using iOS 4. I started the app, go background and move in the car by some minutes. Then I go home for 1 hour and start moving again without opening again the app.