What exactly does Background App Refresh in iOS 7 do? I upgraded to iOS 7 yesterday, and I read that iOS 7 allows applications to not only update themselves in the background, but also retrieve current data (like stocks, weather etc.) so they are already up-to-date when I launch them. Nice.

But what if I'm not at home in my WLAN, and my data plan is limited? Are data updates still fetched? As far as I know, app updates only happen in WLANs, but what about weather data etc.? The preferences screen says:


  Allow apps to refresh their content when on Wi-Fi or cellular, or use Location Services, in the background. Turning off apps may help preserve battery life.


Does this mean that apps that use location services can also drain my mobile data plan at will? Can I prevent that from happening (i.e. allow location services but prevent background data updates if not in a WLAN)?
The setting to enable or disable Background App Refresh is applicable for both WiFi and cellular. There is no way to disable it only for cellular data. So yes, apps that use location services can drain your cellular data plan.

Possible solutions:


Restrict which apps are allowed to use background refresh. You can thus limit the amount of data usage by turning on this setting only for the apps that you need background refreshes for.
Turn off cellular data for specific apps from Settings->Cellular (this page also shows the cellular data used by your apps). This would completely restrict those apps only to WiFi all the time though.