Во время работы над небольшим проектом, который интегрируется с GCM, я наткнулся на немного странную проблему.
Несколько раз, когда я начинаю наблюдать за журналом, чтобы узнать, получены ли сообщения, сообщения не появляются до тех пор, пока я не изменил состояние сети (IE первоначально на WiFi, если я отключу WiFi и перейду к Mobile Data, сообщения поступают нормально). После того, как я изменил состояние сети, сообщения начнут поступать совершенно нормально, и то же самое произойдет, как только я изменю состояние сети до того, что было раньше (в данном случае, WiFi), сообщения продолжают получать сообщения.
Сам проект включает в себя возможность запускать при загрузке (запускает GCMBaseIntentService при загрузке), что опять отлично работает, и я уверен, что приложение/служба запущено, поскольку я вручную запустил приложение, когда эта проблема (который также проверяет, работает ли служба, и если она не запускает его и проверяет, зарегистрирована ли она).
Кто-нибудь еще сталкивается с этой проблемой или имеет какие-либо указания относительно того, как я могу это решить? Я не вижу ничего полезного в журнале между сообщениями времени, которые не принимаются и когда они (после изменения состояния сети). Я прошел через документы GCM и не вижу никаких упоминаний о сообщениях, которые не принимаются из-за тайм-аута (самого устройства) или любых параметров конфигурации, которые могут повлиять на это.
Оцените любую помощь - я могу предоставить источник, если это необходимо, хотя он вряд ли отклоняется от демонстрационного приложения, представленного в android-sdk.