【问题标题】:Google Cloud Messaging fails to broadcast message if app is restarted如果重新启动应用程序,Google Cloud Messaging 无法广播消息
【发布时间】:2013-10-14 06:11:17
【问题描述】:

在我的 Android 应用中,我使用 Google Cloud Messaging (GCM) 接收消息。通常这可以正常工作,并且在收到消息时会调用 onMessage 。但是,在我的华为 Y300 Android 4.1 设备上,如果应用程序被手动或通过代码终止,GCM 将无法调用 onMessage 广播接收器。看起来 GCM 使用某个唯一 ID 对应用程序的广播接收器保持内部引用,但如果应用程序终止,GCM 不会意识到它并尝试将消息发送到某个死进程。

要更正此问题,您必须终止 Google Play 服务并等待一分钟或重新启动设备。在 Android 2.3 上不会出现此问题。在 Android 2.3 上,即使应用重新启动,GCM 仍会调用 onMessage 方法。这是一个已知问题吗?如果是,有办法纠正吗?

【问题讨论】:

    标签: android google-cloud-messaging


    【解决方案1】:

    我和华为-G510-0200有同样的挑战,你需要

    1) 检查您的日期和时间。

    2) 同步。您的 Google 帐户。

    3) 找到更多>“数据使用”- 在“移动标签”中单击菜单,您将看到复选框。重新选中自动同步数据复选框。 (我假设您的设备允许此菜单。摩托罗拉设备没有它!)

    PS : GCM 现已弃用。请点击以下链接:

    http://developer.android.com/google/gcm/demo.html

    http://developer.android.com/reference/com/google/android/gcm/package-summary.html

    【讨论】:

    • GCM 未被弃用。只是它的旧版本。我正在使用依赖于 Google Play 服务的最新版本,因此问题似乎出在 Google Play 服务上。不确定您所说的日期/时间是什么意思。我的应用确实会检查这一点,并在关闭超过 4 天时向用户发出警告(如果电池长时间取出或电池没电,则会发生这种情况)。
    • 您的设备上安装了哪个版本的 Google Play 服务?我的说 3.2.66
    • 我明白了。然后尝试同步您的 Google 帐户?
    • 默认情况下,Google 帐户是同步的。永远不需要手动执行此操作。你不能指望用户这样做。这似乎是 Android 4.1/GCM/Google Play 服务的错​​误。
    猜你喜欢
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多