当设备连接到互联网时,我无法获得旧消息 - GCM

时间:2012-08-27 08:29:04

标签: android google-cloud-messaging

虽然我的设备没有互联网连接,但我正在使用GCM从服务器向应用程序发送消息。之后,当设备连接互联网时,我无法收到消息。这是正常的吗?

来自http://developer.android.com/guide/google/gcm/adv.html

如果设备未连接到GCM,则会存储该消息,直到建立连接(再次遵守折叠键规则)。

我的消息有相同的折叠键;但是当设备连接时我仍然只能收到1条消息。

1 个答案:

答案 0 :(得分:3)

您可以将所有邮件发送到您的设备。

GCM服务器会记录发送到您设备的所有邮件。并且只要设备连接到Internet,它就会在通知区域显示这些内容。

您只收到一封邮件,因为您在代码的 notify()功能中分配了相同的 NOTIFICATION ID

您的代码可能使用此代码:

        // 0 is notification id
        notificationManager.notify(0, notification); 

每次都更改 NOTIFICATION ID 以获取通知区域中的所有邮件。

如:

        static int NOTIFICATION_ID = 0;

        if (NOTIFICATION_ID > 1073741824) {
            NOTIFICATION_ID = 0;
        }
        notificationManager.notify(NOTIFICATION_ID++, notification);

if子句可以防止int值溢出。你可以根据你的要求忽略它。

我已经测试了这个场景。现在轮到你了。
很高兴帮忙!!