I'm trying to keep my storage down because the apps I move to my SD card won't stay there, so whether it has any bearing on storage or not, I disabled it wherever I could. If I notice that an app doesn't look right shouldn't I just enable it for that app instead of having it on all my apps? And what about Background Data? I haven't googled that yet but sounds kind of the same.


There's a few issues going on here.

Permissions and storage use

The "Draw over other apps" permission and "Allow background data" permissions have nothing to do with storage. If you're only changing these settings because you want to reduce storage use, you're doomed to fail.

What is "Draw over other apps" for?

This permission allows an app to draw an overlay on the screen, through which you can see whichever app you're trying to use. There are two main reasons an app might want this.

One is for screen dimmer apps like Twilight. To change the colours of the whole screen, they draw an overlay across the whole screen, all of the time, in front of the app you're using.

The second reason is for a "chat bubbles" feature, where an app can display a floating button or picture that pops out into a bigger window you can interact with. It's possible to do some "chat bubbles" features without this permission, but that limits what the app can do.

So what's the problem?

When an app is drawing over other apps, it's not just displaying stuff: it's also receiving your input events (touch and keyboard). This is how the chat-bubbles-type feature can tell when you've clicked on it. Normally, the overlay app will just pass all the touch events through to the app underneath, but this means it can monitor everything you can do and even fake touch events. The overlay app is literally in between you and the app you're trying to use, controlling all your interaction with it.

This makes the overlay quite powerful. An overlay app can see all the passwords you type, and it can click "accept" buttons for you. To protect this, Android has a feature for developers to mark some controls as sensitive. Controls marked in this way can't be touched or used by an overlay.

One of the sensitive controls is the "Allow" button in the permission dialog. This stops the overlay app from silently giving itself more permissions by just bringing up the dialog and clicking "allow" for you. Another one is the "Install" button in the package installer. Making this sensitive stops the overlay app from silently downloading and installing more apps. Third-party apps with buttons that spend money (e.g. in-app purchases) or perform sensitive actions on your behalf (banking apps) should also use the same "sensitive" setting.

The downside of this protection is that you can't grant permissions to an app, or install a new app, or any other action like this, while you're using a screen overlay. It looks like you're clicking on the "Allow" button, but you're only clicking on the overlay, and the overlay isn't allowed to click on the "Allow" button for you. To do this, you need to turn off the overlay app (or this permission).

What about background data?

That just lets apps use the internet while they're in the background (that is, while they're not shown on the screen). Normally, this should be on. For example, an email app might sync your email folders while it's in the background, so that when you start the app it already shows the right information without making you wait. A music app might download your new album in the background so it's ready to listen as soon as you start it, even if you don't have an internet connection when you want to listen.

Most apps should have settings inside the app to let you control this. They might let you control what or how much to download, and choose whether to download over Wi-Fi or mobile data. For those apps, you don't need to change the "Background data" setting, because the settings inside the app are more specific.

But some apps are written or designed badly. They might download too much stuff, without giving you any control inside the app. If you have limited data on your cellphone plan, or if you have to pay per megabyte of data, bad apps like this might cost you money. Even if you don't, they might be using your battery unnecessarily.

So you don't have to uninstall these apps completely, you can turn off the "Allow background data" setting. While the app is shown on the screen, it'll work as normal. But as soon as you switch away from that app or turn the screen off, Android will pretend that the internet connection stopped. The app won't be able to use the internet while it's in the background. (Play Store can still download new updates for the app, though.)

  • This answer is perfect. Have my upvote. – Grimoire Nov 17 '17 at 13:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.