🔔 Как не убить push-уведомления в Doze: гайд по FCM

🤖 Android любит экономить батарейку — есть всякие Doze и прочие оптимизации (про режим Doze в следующий раз) из-за чего приложения на андроид устройствам могут "засыпать". "Настоящие" же пуш-уведомления обычно должны отрабатываться системой в оперативное время, т.к. сильно связаны с системой. Но есть нюанс: если криво настроен Firebase Cloud Messaging, ваши пуши могут приходить с задержкой или не приходить вообще, что может сказаться на рейтинге вашего приложения.
Чтобы уведомления не терялись и реально доходили до юзера, важно:
1) Корректно выставлять приоритет уведомлений.
2) Грамотно обрабатывать полезную нагрузку (payload).
📌 Приоритеты FCM
У FCM есть два приоритета:
- normal — пуши приходят, когда экран включён. Если экран погас — ждут, пока устройство «проснётся» из Doze.
- high — пуши приходят сразу, даже если экран выключен. FCM может «разбудить» устройство.
Используй high priority, если уведомление действительно срочное и юзер должен его видеть (чаты, важные нотификации, доставка и т.д.).