In the Account/Sync menu on Android phones there is a setting that a user can check to allow or deny data traffic from applications that are running in the background. The value of this setting is available to developers in the API through the getBackgroundDataSetting method on the ConnectivityManager.
The documentation says
“Developers should respect this setting, and check the value of this before performing any background data operations.”
The wording is “should”, and I suspect that many developers either forget, ignore or do not know this. Why should your app be polite and respect the setting, when the rest of the world does not? Even the official Google Plus App totally ignores this and uploads your photos via the “Instant upload”, regardless of the setting. Here is how to test it:
1. Make sure WIFI is disabled, and mobile data is enbaled
2. In the Account/Sync page in your Android settings, disable the "Background data setting".
3. Make sure you have the "Instant upload" setting enabled in Google Plus.
4. Take a photo
5. In a couple of minutes the image will be available online.
The concept of having a common setting for background data is a great idea and very user friendly. The user shouldn't have to disable background data in every single app. Some apps may even lack a setting to turn data off.
I suspect that google is stuck between a rock and a hard place right now. If they change the Android operating system to enforce this setting, a lot of applications would be cut off from the Internet, including their own.
Why not enforce the setting, or remove it? Right now it gives users a false
sense of security. It also adds confusion since a lot of apps ignore the setting. Google could also practice what they preach and respect the setting in their own applications to set a good example.