Android 8.0 Oreo ( API level 26 ) introduced two major background limits in order to preserve the device's battery life and RAM resources.
- Background Service Limitations: After Android 8.0, apps which go into the background have restrictions on the use of Services. It introduces the concepts of foreground and background Services. Foreground services are visible to the users and have no restrictions imposed.
According to the docs,
While an app is in the foreground, it can create and run both
foreground and background services freely.
Also, the system maintains a whitelist. The apps listed over the Whitelist have full access to create background services. The docs also mention that,
To migrate to Android 8.0 (API level 26), the developer replaces the
background service with a scheduled job, which is launched
periodically, queries the server, then quits.
- Broadcast Limitations: From Android 8.0,
BroadcastReceiver can only be instantiated at runtime and not in the app's manifest. This reduces the system's load as the app only uses the component when required.
The problem is described in the docs,
If an app registers to receive broadcasts, the app's receiver consumes
resources every time the broadcast is sent. This can cause problems if
too many apps register to receive broadcasts based on system events; a
system event that triggers a broadcast can cause all of those apps to
consume resources in rapid succession, impairing the user experience.
Now, your question,
Some of the app's notifications are not showing after the update? IS
this due to background execution limit?
There can be the following problems based on the limitations described above:
- The app's developer hasn't optimized the app for Android 8.0 changes.
- The app does not make the use of Android Services wisely and therefore gets eliminated by the system.
BroadcastReceiver hasn't been initialized properly as required and therefore is not operational and could not update the app content.
- Some other underlying change to which the app is not optimized.
Hope this helps.