How to Hide the “App is Running in the Background” Persistent Notification on Android Oreo
On Android Oreo, a notification which has been annoying users has been the “App is running in the background” notification. It appears whenever certain apps run in the background or overlay on the screen, such as Facebook Messenger or Twilight. The principle of the notification is good, but the application of it is not. The notification cannot be removed nor can it be disabled, so you have to put up with it taking up screen space in your notifications. That is, of course, if you’re not willing to work around it. While it’s not possible to permanently disable the notification without root access, it is possible to effectively permanently snooze the notification so you’ll never see it again – and that’s exactly what we’ll be doing with the help of a Tasker script.
A fix was made by Marco Stornelli who is a developer of many free Tasker plugins under the BaldApps family. As published in this Reddit thread and shared below with his permission, this fix entails using the Tasker automation app as well as one of Marco’s Tasker plugins called Notification Listener. This tutorial supersedes an earlier tutorial we made on this same issue, as Google quickly patched the (rather drastic method) we were using earlier.
Persistent notification for Android Oreo
Hiding the “App is Running in the Background” Notification in Android Oreo
First, download these two applications. You’ll need Tasker because it is necessary for Notification Listener to do its job, which in this case, will be to get rid of the background services persistent notification.
Next, you’ll want to import the Tasker profile that Marco provided. Download it here, then follow the screenshots below to learn how to import it and set it up!
Once the Task has been imported, you can run it to “snooze” the notification. It doesn’t run at boot however, so follow the next steps below to learn how to run this Task at boot to block the notification automatically.
And now when you reboot your device, the profile should run at boot (well, not exactly at boot as technically it runs when Tasker’s monitoring service starts, which is a few seconds after other boot receivers run)! So what is our Tasker profile actually doing?
Without root, there is no way to actually prevent Android System from displaying the persistent “app is running in the background” notification in Android 8.0 Oreo. Looking at the source code for the ForegroundServiceController, its implementation, and the ForegroundServiceDialog doesn’t really reveal anything we can take advantage of. As far as we know, there’s no command or system property edit we can use to control whether or not this service runs. It seems that “Dianne’s Dungeon” (likely a Google inside joke referring to senior Android engineer Dianne Hackborn) isn’t something we can easily escape.
However, the Tasker profile that we have implemented is a relatively simple workaround for this issue. It queries for an “Android System” notification, which is a persistent notification created by the Android Framework app (package name “android”). If it exists, then it snoozes the notification from Android System for an absurdly long time, 10000000000000 seconds in fact! Converted to years, this is 317098 years long, so there is nothing to worry about in regards to the Tasker profile having to be run again. This modification is entirely safe to do by the way, as Android System usually doesn’t provide any other notifications.