Last time I wrote about notification channels I described a complicated solution to create the best balance between automatic bundling vs. not annoying the daylights out of the user:
- Have as few channels as possible make noise by default.
- Use summaries on the channels that make noise by default.
The reasoning being that on channels that do make noise, you could end up pinging the user multiple times in a row without a summary.
But, like sands through the hourglass, so are the changes that Google makes to Android notifications. Android 8.1 was released late last year, and one of the changes listed was like an early Christmas present to me:
Apps can now only make a notification alert sound once per second. Alert sounds that exceed this rate aren't queued and are lost. This change doesn't affect other aspects of notification behavior and notification messages still post as expected.
The only reason I used notification summaries on 8.0 was to avoid multiple alert sounds happening at once. On 8.1 that's no longer a problem, so my new advice is as follows:
- Post all your notifications individually.
That's it! They'll bundle together automatically if there are more than three of them, and they won't ever spam the user with noise (unless you purposefully wait 1 second between each notification... in which case, what is wrong with you?!).
Unfortunately, my minSdkVersion won't be at 8.1 for another decade, so in the meantime I'm still maintaining multiple code paths:
- 8.1 and above: Post all notifications individually
- 8.0: Post noisy channels as summaries, quiet channels individually.
- 7.x and below: Post all notifications together as a single summary (as outlined here).
I'd like to say that things will be easier once my minSdkVersion is 8.1, but knowing Android, there will probably be several more notification system overhauls in the coming years, requiring further changes.