在执行操作之前,如何在Android中处理多个推送通知

时间:2015-02-19 04:28:40

标签: android push-notification google-cloud-messaging

在我的聊天应用中,我发送新消息的推送通知。通常,当应用程序收到推送时,它会向服务器发送请求以获取新消息的信息。当用户长时间离线并且为该用户累积了大量推送时,我的问题就出现了。然后,当他回到网上时,他立即收到所有推送。  因此,当许多推动时,我的应用程序开始请求每次推送。 如何首先处理所有推送,然后向服务器发出单个请求。

修改1

从服务器获取新消息我构建请求,其中我放置了本地的最后一个消息ID。然后,服务器将在该消息ID之后返回所有新消息。 这是我的改造代码。

public interface GroupChatFromDateInterface {
        @GET("/groups/{groupId}/show_messages.json")
        List<Message> groupMessages(@Path("groupId") int groupId,
                                    @Query("auth_token") String token,
                                    @Query("after_message_id") int messageId);
    }

1 个答案:

答案 0 :(得分:1)

处理此问题的最简单方法是在您发送的GCM邮件中使用collapse_key

如果所有GCM消息具有相同的collapse_key,则当设备处于脱机状态时,GCM服务器将仅为该collapse_key存储一条消息。

当设备重新联机时,它只会收到一条GCM消息,您的应用会向您的服务器发出一条请求。