在收到com.google.android.gms中的任何通知之前,安装后应用程序关闭时无法显示GCM通知:play-services-gcm:9.0.0

时间:2016-06-08 03:37:50

标签: android notifications google-cloud-messaging

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

此项目使用的是com.google.android.gms:play-services-gcm:9.0.0

我通过android studio将应用程序安装到手机上。 我从手机上杀了应用程序(不是从设置强行杀死)。 然后,我尝试根据谷歌指令发送通知消息。

通知无法在手机上显示。当我检查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没有这种问题。

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

Read this thread

答案 2 :(得分:1)

当我使用apk文件安装应用程序时,不会发生此问题。这个问题只有在我通过在android studio中运行项目安装应用程序时才会发生。感谢您的所有建议和答案。

答案 3 :(得分:0)

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