Can an app in iOS 8 access Location Services even when it is not running? I have the Kohl's app installed on my iPhone running iOS 8.1.  I notice that whenever I enable Location Access for that specific app, it starts pinging my location immediately, based on the location services icon in the status bar, and the purple location services icon next to the app in the settings.  This takes place even though the app is not running, and I have Background App Refresh turned off for that app, although it shouldn't matter as it is not even running in the background.

Is this expected behavior?  If so, is there a way to only enable location access only when I'm running the app?
The app itself must support the "While Using the App" option. If it doesn't, then as you have discovered, your only options are "Always" or "Never".

Presumably you would only want to allow this app to access your Location for geofencing-type reminders (e.g., offers). If so, you have to pick "Always" and you are at the mercy of the app to some extent with regard to how often it gets your Location, and how it is used. iOS 8 apps, even when terminated and even with Background App Refresh off, can still have certain Location service events delivered to them by iOS :


significant location change service
region monitoring service
visit service


The only other option is to deny Location to the app using "Never".

Apple's Core Location Manager reference is here: https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html