Added on: 03-11-2017
Last update: 03-11-2017
Android 7.0 added a new permission called RUN_IN_BACKGROUND, which can restrict background behavior of apps (blocking broadcast receivers, services, etc.). However this permission is fully hidden and there's no way to activate it besides using adb commands.
You can revoke RUN_IN_BACKGROUND permission on any app by executing following command in the adb shell:
cmd appops set <package_name> RUN_IN_BACKGROUND ignore
To grant this permission back, one should execute this:
cmd appops set <package_name> RUN_IN_BACKGROUND allow
To check status of RUN_IN_BACKGROUND permission on any app, one can execute this command:
cmd appops get <package_name> RUN_IN_BACKGROUND
<package_name> is obviously name of application package, be it com.android.calculator2 or anything else.
By disabling RUN_IN_BACKGROUND, apps such as Hangouts or Facebook will completely stop syncing in the background until you open them up. You can find more information about these commands by reading this article.