Android应用程序在一段时间后停止接收c2dm消息

Android应用程序在一段时间后停止接收c2dm消息,android,android-c2dm,Android,Android C2dm,我们一直在尝试开发一个使用谷歌c2dm服务的android应用程序。 当我们在清除所有数据后启动应用程序时,应用程序会很好地接收c2dm消息,但在一段时间后(可能2分钟),消息拒绝到达 我们还检查了从服务器推送c2dm消息后收到的代码,代码成功(代码号200,无错误) 在搜索有关堆栈溢出的相关帖子后,我们发现了以下帖子: 但是我们验证了,我们没有在每次应用程序启动时注册到c2dm服务 我们的情况似乎有什么问题 我们使用安卓2.2 API 8版本 提前感谢,, 马克。“大概2分钟”——你应该首先确

我们一直在尝试开发一个使用谷歌c2dm服务的android应用程序。 当我们在清除所有数据后启动应用程序时,应用程序会很好地接收c2dm消息,但在一段时间后(可能2分钟),消息拒绝到达

我们还检查了从服务器推送c2dm消息后收到的代码,代码成功(代码号200,无错误)

在搜索有关堆栈溢出的相关帖子后,我们发现了以下帖子: 但是我们验证了,我们没有在每次应用程序启动时注册到c2dm服务

我们的情况似乎有什么问题

我们使用安卓2.2 API 8版本

提前感谢,, 马克。

“大概2分钟”——你应该首先确认一下。你必须澄清:

  • 此问题是否与此设备相关
  • 这种情况持续发生吗?如果没有,是什么触发了它
  • 它发生过一次,还是每次都发生
请记住,C2DM消息不受保证。有些人不会来


还要注意,有时Android设备会“脱落”c2dm,并且在一段时间内不会收到消息。你会在一些网络上看到类似的效果(例如,根据我的经验,一些C2DM消息不是通过wifi网络发送的,所以也可以尝试3G)。

你应该始终记住,谷歌的C2DM允许每天发送一定数量的消息。我认为在2-3分钟内发送大量消息(客户端聊天或类似的事情)可能是问题的根源

此外,请记住,无法保证消息会到达。根据谷歌的C2DM介绍:C2DM不保证邮件的传递或顺序。但你可能已经知道了


我在想,如果你的平均2-3分钟是一个规则,那么可能是限制的消息可能是原因。尝试发送更少的消息,看看间隔是否变大。

你好,奥利。我们已经在许多设备和电动车上运行了这个应用程序。这个问题每次都会发生,但它是在随机时间开始的,这意味着有时会在一分半钟后开始,有时会更晚。然而,这个问题似乎在真实设备上比在模拟器上更早出现。关于“有些邮件不会到达”,并不是有些邮件收到了,有些邮件没有收到。在某个时间点之前,所有消息都会到达,但没有一条消息会从中到达。你确定它们没有到达,还是只是被延迟了?有些C2DM消息到达得很快,有些则需要一段时间。至少以我的经验,也许我们没有等待足够的时间来确保信息到达。无论如何,谢谢你的帮助。