gpt4 book ai didi

android - 为什么 Android C2DM 推送消息不总是到达?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:15 24 4
gpt4 key购买 nike

我构建了一个正常运行的 C2DM 应用程序,总体上运行良好,推送消息到达速度很快。但是,我发现当我第一次启动该应用程序或将其重新聚焦时,消息经常没有到达。

它们肯定已成功发送(我收到 200 响应)并且消息格式肯定是正确的(稍后发送相同的消息可以正常工作)。故障可能持续几分钟,然后突然又开始工作,此后一直工作。

然而,即使在它开始工作之后,旧消息显然已经消失并且永远不会到达。消息肯定没有到达 - 我有大量的日志记录,突出显示任何到达的 C2DM 消息。

我完全知道 C2DM 永远无法保证传递,所以我预计某些消息会失败,但根据我的经验,在某些情况下,它就是行不通。我显然想知道这是我在我的应用程序中做错了什么,还是 C2DM 服务本身做错了。

什么会导致 C2DM 无法传递消息?如果无法传递消息,为什么 C2DM 服务器不从其队列中再次尝试?相关 - 我应该只在应用程序第一次启动时获得一个新的注册 ID,还是在应用程序每次启动时刷新它?我目前做的是后者(在应用程序中,而不是在 Activity 中)。

最佳答案

我意识到我犯了一个小学生错误。每次应用程序启动时,我都会重新注册 C2DM。该过程有时需要几秒钟,在此期间应用程序将不会收到发送到旧注册 ID 的推送消息。这就解释了为什么推送消息特别容易在启动应用后无法立即收到。

解决方案是确保仅在应用尚无注册 ID 时才请求注册 ID。推送消息现在更加可靠。

关于android - 为什么 Android C2DM 推送消息不总是到达?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com