I have been looking into Android O and I have to say I am disappointed with the introduction of background limits. This post explains what this means for product owners, developers and the end-user experience.
Many apps, for example those that fetch data in background or scan for Bluetooth devices, do these things so that when the user gets to a particular screen, the data is already there. The most common way of doing this is using services. From Android O, services won’t be able to be run reliably in background unless they are foreground services – these are the sort that you might have seen, that have an icon permanently in the notifications bar. Google recommends services such as these be replaced by use of JobScheduler jobs.
Existing apps built against earlier Android versions aren’t affected. They will continue to be able to use background services. As with the previous permissions debacle, when updating apps (or even creating new ones), developers can avoid building against Android O. However, ‘you can run but you can’t hide‘. You will eventually need new features provided by Android O or later and have to consider what to do.
The long tail of apps, not created by large companies, don’t get updated and those that do minimise effort/cost. Developers wanting to build old apps against Android O will end up either a) promoting services to foreground causing lots of icons to become visible in the notifications bar or b) ignoring the problem or c) using JobScheduler. I suspect, due to limited development effort, most will pick a) or b). The affect of b) can already be seen in Android’ Doze mode that causes no messages to be seen when you pick up the phone and then tens of seconds later everything comes in. Expect more of this kind of ‘stuttering’ performance.
As with the introduction of the need for permissions dialogs, Google continue to make development more complex and costly while also compromising the user experience. I have to question whether Android dev team has it’s priorities right. What’s the obsession with crippling app background capability? This is one of the areas where Android is (currently) much more capable than iOS.
In real use, it has been my experience that devices with lots of apps with lots of services don’t tend to flatten the battery. It’s using the phone, causing the power-hungry screen to be turned on, that mainly flattens the battery. There will always be a mix of old (pre ‘O’) and new (‘O’ +) apps on the device so Google won’t be stopping all background activity, so what’s to be gained by all this extra complexity?