2012-05-04 56 views
0

我们一直在试图开发一个使用Google的c2dm服务的Android应用程序。 当我们在清除所有数据后启动应用程序时,应用程序会收到c2dm消息,但过了一段时间(可能是2分钟),消息就会拒绝到达。Android应用程序在一段时间后停止接收c2dm消息

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

Stack Overflow上搜索相关的帖子后,我们遇到了这个帖子: Why do Android C2DM push messages not always arrive? 但我们证实,我们不会每次都注册到C2DM服务的应用程序启动。

在我们的案例中似乎是什么问题?

我们使用android 2.2 API 8版本。

在此先感谢, 马克。

回答

0

“也许2分钟” - 你应该首先确认。您必须澄清:

  • 此问题与此设备相关吗?
  • 它是否一致发生?如果不是,是什么触发它?
  • 它发生过一次,还是每次都发生?

请记住,不能保证C2DM消息。有些人不会到达。

另外请注意,有时Android设备“脱落”c2dm并且一段时间内不会收到消息。您会在某些网络上看到类似的效果(例如,根据我的经验,某些C2DM消息不通过WiFi网络传送,因此请尝试3G)。

+0

你好。 我们已经在很多设备和emultors上运行过这个应用程序。 每次都会发生这个问题,但它随机时间开始,这意味着它有时会在一分半钟后开始,有时会在稍后。 但是,似乎这个问题在真实设备上开始显着较早,而不是在仿真器上开始。 关于“有些不会到达” - 这并不是说某些消息被接收,有的不会。直到某个时间点**全部**消息到达,但从它**没有一个消息**将到达。 – Mark268

+0

你确定他们没有到达,或只是被推迟?一些C2DM消息以非常快的速度到达,另一些需要一段时间。至少在我的经验。 –

+0

也许我们没有等待足够的时间来确保邮件到达。还是要谢谢你的帮助。 – Mark268

2

您应该时刻牢记Google的C2DM允许每天的消息数量有限制。我想在2-3分钟内发送大量的消息(客户端聊天,或类似的东西)可能是你的问题的根源。

此外,请记住,无法保证消息将会到达。根据Google的C2DM简介:C2DM不保证传递或消息的顺序。但你可能已经知道这一点。

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

相关问题