
Мой вопрос: если клиентское устройство не имеет подключения к интернету в течение ограниченного времени, то добавляется ли запрос на push-уведомление GCM в очередь или что-то еще? Если да, то как долго запросы будут отклонены?
решение1
Итак, в официальномгидкак работать с GCM сказал:
Установка срока жизни сообщения
GCM обычно доставляет сообщения сразу после отправки. Однако это не всегда возможно. Например, если платформа Android, устройство может быть выключено, находиться в автономном режиме или иным образом недоступно. Или сам отправитель может запросить, чтобы сообщения не доставлялись, пока устройство не станет активным, с помощьюdelay_while_idleфлаг. Наконец, GCM может намеренно задерживать сообщения, чтобы предотвратить чрезмерное потребление ресурсов приложением и негативное влияние на срок службы батареи.
Когда это происходит, GCM сохраняет сообщение и доставляет его, как только это становится возможным. Хотя в большинстве случаев это нормально, существуют некоторые приложения, для которых позднее сообщение может вообще не доставляться. Например, если сообщение является входящим звонком или уведомлением о видеочате, оно будет иметь смысл только в течение небольшого периода времени, прежде чем звонок будет прерван. Или если сообщение является приглашением на мероприятие, оно будет бесполезно, если получено после окончания мероприятия.
Вы можете использоватьвремя житьпараметр в запросе отправки для указания максимального срока жизни сообщения. Значение этого параметра должно быть длительностью от 0 до 2 419 200 секунд, и оно соответствует максимальному периоду времени, в течение которого GCM будет хранить и пытаться доставить сообщение.Для запросов, не содержащих это поле, по умолчанию устанавливается максимальный период в 4 недели.