在处理一个与 GCM 集成的小项目时,我偶然发现了一个奇怪的问题。
有时当我开始查看日志以查看是否收到消息时,消息似乎没有通过,直到我更改了网络状态(IE 最初在 WiFi 上,如果我关闭 WiFi 并移动到移动数据,则消息到达美好的)。在我更改网络状态后,消息开始完全正常地到达,一旦我将网络状态更改回之前的状态(在本例中为 WiFi),消息将继续被接收。
该项目本身包括启动时启动的能力(启动时启动 GCMBaseIntentService),它再次运行良好,我确信应用程序/服务正在运行,因为我在发生此问题时手动启动了应用程序(其中还检查服务是否正在运行,如果不是,则运行它并检查它是否已注册)。
有没有其他人遇到过这个问题,或者有任何关于我如何解决这个问题的指示?在未收到消息的时间和收到消息的时间(更改网络状态之后)之间,我在日志中没有看到任何帮助。我浏览了 GCM 文档,看不到由于超时(在设备本身上)或任何可能影响此的配置选项而未收到消息的任何提及。
感谢任何帮助 - 如果需要,我可以提供源代码,尽管它几乎不偏离 android-sdk 中提供的演示应用程序。