Android - GCM 在打开应用程序时收到来自 gcm 的通知

Posted

技术标签:

【中文标题】Android - GCM 在打开应用程序时收到来自 gcm 的通知【英文标题】:Android - GCM receive notification from gcm when open app 【发布时间】:2014-12-15 17:31:15 【问题描述】:

我已经使用 GCM 实现了应用程序来接收来自我的服务器的推送通知,它工作正常,但我有一个问题。当应用程序未运行时,我从服务器推送通知并且我无法在设备上接收来自 GCM 的通知,没关系。但是当我打开应用程序时,它仍然没有收到来自 GCM 的存储通知。请给我一些建议谢谢。

【问题讨论】:

【参考方案1】:

当您从应用设置屏幕手动停止/终止您的应用时,您将处于 GCM 消息仍将传送到设备的状态,但您的 BroadcastReceiver 将无法接收后续的 com.google.android.c2dm.intent.RECEIVE播送。所以这意味着 GCM 消息基本上会丢失。当您打开您的应用程序时,您将不会收到您在应用程序死机时错过的过去 GCM 消息。如果用户手动进入他们的设置并停止您的应用程序,则无法避免这种情况。

请注意,这与您从最近的任务/多任务列表中删除您的应用程序的情况不同 - 在这种情况下,您拥有的任何 BroadcastReceivers 仍然可以工作,您可以显示通知或执行一些工作时间,和/或持久存储某些内容,以便在用户下次打开您的应用时检测/使用。

【讨论】:

是的,我从最近的任务/多任务列表中删除了应用程序,然后将消息推送到 GCM 并再次打开应用程序,但无法收到来自 GCM 的通知。将 time_to_live 发布到 GCM 时,我已经在 json 中配置了 time_to_live 您的应用在打开时不会收到 GCM - 当您将其发布到 GCM 服务器时会收到 GCM。您是否定义了BroadcastReceiver,如下所述:developer.android.com/google/gcm/client.html#manifest? 是的,我定义了它。这是我在清单中的代码:android:name="com.android.daob.gcm.GcmBroadcastReceiver" 我在 developer.android.com/google/gcm/client.html 上实现了基础,当应用程序运行时我的应用程序从 GCM 收到通知,但我的问题是我的应用程序从最近的任务中清除当我再次打开应用程序时,应用程序无法接收。

以上是关于Android - GCM 在打开应用程序时收到来自 gcm 的通知的主要内容,如果未能解决你的问题,请参考以下文章

有时一些 android 用户没有通过 GCM 收到推送通知

某些 android 设备未收到 GCM 推送通知

Android GCM 不向设备发送通知消息

即使App已关闭,也会收到Android推送通知

某些设备在 android 中未收到推送通知

Android ICS 上的 GCM 通知不起作用