Настройка приоритета Google Cloud Messaging на устройствах с режимом Doze в Android 6.0 Marshmallow

Android 6.0 Marshmallow вводит новую функцию  экономии энергии , которая называется «Doze«. Устройство входит в Doze, когда пользователь  не использует его в течение определенного периода времени, и экран устройства выключен. В этот период, система откладывает активности приложений (application activity) для экономии энергии. Система периодически пробуждает устройство на короткое время, это так называемое «окно ожидания обслуживания» ( idle maintenance window), чтобы выполнить синхронизацию приложений и другие ожидающие операции.

 

Если ваше приложение использует Google Cloud Messaging (GCM), Вам нужно будет принять во внимание следующие варианты поведения для пользователей, устройства которых находятся в режиме Doze.

В GCM есть два типа приоритета для сообщения — высокий приоритет и обычный приоритет. При использовании высокого приоритета, GCM попытается доставить сообщения немедленно, пробуждая устройства в Doze, при необходимости. В  Android Marshmallow ничего не изменилось здесь.

Однако при использовании нормального приоритета (приоритет по умолчанию), существует ряд различий в поведении при нахождении устройства в Doze, включая:

  • Наиболее важное изменение: сообщения будут выполняться в пакетном режиме для устройств в Doze. Когда устройство входит в окно ожидания обслуживания, пакеты сообщений будут получены.
  • Удаляются сообщения, для которых time_to_live срок действия истекает в то время как устройство находится в Doze (включая TTL=0).

Несмотря на это, рекомендуется, в случае крайней необходимости, устанавливать обычный приоритет  вашим уведомлениям, поскольку это сведет к минимуму расход  батареи. Они по-прежнему будут синхронизированы во время Doze режима, как описано выше и, конечно, когда устройство выходит из Doze.

Высокий приоритет сообщения должен использоваться только в приложениях, которые должны генерировать немедленное оповещение конечного пользователя, например, сообщение приложения чата или входящий телефонный звонок.

Чтобы узнать больше о приоритетах сообщений Google Cloud Messaging, посетите сайт  Google Developers site.

Автор Laurence Moroney, Developer Advocate

 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий