【问题标题】:GCM notification cannot show when the app is closed after install before receiving any notification in com.google.android.gms:play-services-gcm:9.0.0在 com.google.android.gms:play-services-gcm:9.0.0 中收到任何通知之前,安装后关闭应用程序时,GCM 通知无法显示
【发布时间】:2016-10-08 03:35:13
【问题描述】:

我正在测试来自 google 的 gcm 通知示例项目 https://developers.google.com/cloud-messaging/android/start

这个项目正在使用 com.google.android.gms:play-services-gcm:9.0.0

在我通过 android studio 将应用程序安装到我的手机后。 我从手机中终止了应用程序(不是从设置中强制终止)。 然后,我尝试按照google指令发送通知消息。

通知无法在我的手机上显示。当我检查 logcat 时。我找到了以下关于 GCM 的日志。

06-08 11:19:37.859 5080-5080/? W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=gcm.play.android.samples.com.gcmquickstart (has extras) }

之后,我在手机中启动该应用程序并再次终止该应用程序,然后再次将 GCM 发送到我的手机。那时,通知可以在我的手机中正确显示。 看来,应用程序需要重新启动一次才能接收 gcm 通知,或者应用程序应该在用户终止应用程序之前收到通知。

我应该如何解决这个问题? 据我所知,低版本的 play-services-gcm:9.0.0 没有这种问题。

【问题讨论】:

    标签: android notifications google-cloud-messaging


    【解决方案1】:

    这是 Android 平台的一项功能。用户强制停止应用程序会使应用程序处于停止状态,并且不会运行任何代码,包括清单中声明的​​任何广播接收器。只有当用户显式启动应用程序时,它才会处于接收器被触发的状态。

    Read this thread

    【讨论】:

    • 我没有强制终止应用程序的设置。我只是从最近的应用程序列表屏幕中杀死该应用程序。所以,我的应用即使没有在后台运行,也应该收到通知。
    • 如果您从最近的应用程序中滑动它,它仍然适用。
    【解决方案2】:

    编辑:您的健身房令牌可能没有时间在服务器上注册。您是否从服务器获得令牌和注册确认?

    如果您刚开始使用 GCM,那么我建议您使用 FCM,它正在取代 GCM。 https://firebase.google.com/docs/cloud-messaging/

    同样的事情,但有支持和新的例子。它看起来比 GCM 更容易使用。

    【讨论】:

    • 确实如此,我在我的旧应用程序中使用它,但我正在迁移到 FCM,如果您不构建遗留系统,那么我建议您使用 FCM 而不是 GCM 以获取您自己的利益
    • 感谢您的知识。但我认为 FCM 存在一些限制,因为它们在免费计划中一次仅提供 100 个连接。
    • 我目前的项目是使用GCM,需要支持从姜饼开始。所以,我目前无法迁移到 FCM。谢谢你的建议。 :)
    【解决方案3】:

    当我使用 apk 文件安装应用程序时,没有发生此问题。仅当我通过在 android studio 中运行项目来安装应用程序时才会出现此问题。感谢所有建议和回答。

    【讨论】:

    • 我也遇到了同样的问题,除了通过 APK 安装之外,我还不知道有什么修复方法。
    【解决方案4】:

    到目前为止,我最好的解决方法是拔下手机,终止应用程序,重新启动应用程序,然后再次终止它。即使在通过 android studio 安装后,这样做也会显示通知。 这是关于这个问题的另一个线程:https://code.google.com/p/android/issues/detail?id=219084

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多