As you may already know, iOS4 gives iPhones and iPads the ability to run applications in the background. Most people are also aware of the ‘task manager’ that you can activate by double-tapping the Home button. But how do you stop an application from running in the background?
Delete it. Seriously, that’s the only way (for location applications using the Significant Location Update service).
The ‘task manager’ is not actually managing anything, and the icons in there are not tasks. If you hold down the icons until they start to wobble and then tap the red X, you have terminated that application.
But location apps using the Significant Location Update service get restarted when:
- the phone reboots
- you change cell towers
So even though you’ve just turned it off, as soon as you get in your car and drive a mile, it comes back to life.
There are typically 3 reasons why you’d want to stop a location based application running:
- To stop it sending your location temporarily or permanently
- To test whether that has an impact on battery life
- To make the location arrow go away (this won’t work on iOS 4.1, see my prior post)
For case 1 and 3, you should really do what Apple recommend, and that is use the Settings application. Go to Settings->General->Location Services, and turn off either the specific application or all of them. The application will then be unable to get any location information from the CoreLocation API. This also has the effect of turning off the location arrow.
For case 2 your best bet is to delete the application. Turning off location access will remove an application’s ability to turn on the GPS chip, but that is only one of the ways to drain your battery. Continually sending data over the network via Edge or 3G is almost as bad, and the only way to stop that is to delete the app.