En travaillant sur un petit projet qui s'intègre à GCM, je suis tombé sur un problème un peu étrange.
Parfois, lorsque je commence à regarder le journal pour voir si les messages sont reçus, les messages ne semblent pas arriver jusqu'à ce que j'aie changé l'état du réseau (c'est-à-dire, à l'origine en WiFi, si je désactive le WiFi et passe aux données mobiles, les messages arrivent bien). Après avoir changé l'état du réseau, les messages commencent à arriver parfaitement bien, et il en va de même lorsque je change l'état du réseau pour revenir à ce qu'il était avant (dans ce cas, WiFi), les messages continuent à être reçus.
Le projet lui-même inclut la possibilité de démarrer au démarrage (lance le GCMBaseIntentService au démarrage), ce qui fonctionne à nouveau parfaitement, et je suis sûr que l'application / le service est en cours d'exécution car j'ai démarré manuellement l'application lorsque ce problème se produit (qui vérifie également si le service est en cours d'exécution, et si ce n'est pas le cas, il le lance et vérifie s'il est enregistré).
Quelqu'un d'autre a-t-il rencontré ce problème ou a-t-il des indications sur la manière de le résoudre ? Je ne vois rien d'utile dans le journal entre le moment où les messages ne sont pas reçus et celui où ils le sont (après avoir modifié l'état du réseau). J'ai parcouru la documentation de GCM et je ne vois aucune mention de messages non reçus en raison d'un délai d'attente (sur l'appareil lui-même), ou d'options de configuration qui pourraient affecter cela.
J'apprécie toute aide - je peux fournir les sources si nécessaire, bien que cela ne s'écarte guère de l'application de démonstration fournie dans l'Android-sdk.