0

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

我们也检查了从服务器推送c2dm消息后收到的code,code成功(code number 200无错误)。

在 Stack Overflow 上搜索相关帖子后,我们看到了这样一个帖子: 为什么 Android C2DM 推送消息不总是到达? 但是我们验证了我们不会在每次应用程序启动时注册到 c2dm 服务。

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

我们使用 android 2.2 API 8 版本。

在此先感谢,马克。

4

2 回答 2

2

您应该始终牢记,Google 的 C2DM 允许每天发送一定数量的消息。我认为在 2-3 分钟内发送大量消息(客户聊天或类似的东西)可能是您问题的根源。

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

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

于 2012-05-06T09:31:33.333 回答
0

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

  • 这个问题与这台设备有关吗?
  • 它是否始终如一地发生?如果不是,是什么触发了它?
  • 它发生过一次,还是每次都发生?

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

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

于 2012-05-04T17:10:01.623 回答