1

我正在尝试使用此处描述的 Google GCM Multicast Messaging 。我需要同时发送 50,000 条消息。

文档说我应该将注册 ID 列表传递给Sender.send().

我的问题 我很困惑,我应该一次通过所有 50,000 个 id 还是 1000 个 id 的列表,因为文档说“GCM 中最有用的功能之一是支持多达 1,000 个收件人的单个消息。”

[Edit1]这样可以吗?

    Sender sender = new Sender(API_KEY);
    List<List<String>> regIdsParts = regIdInThousands(getRegistrationIds(), 1000);

    for (int i = 0; i < regIdsParts.size(); i++) {

        Message message = new Message.Builder()
                .addData(MsgKey, message).build();
        MulticastResult result = sender.send(message, regIdsParts.get(i), 5);
    }


   public List<List<String>> regIdInThousands(List<String> list, final int L) {

    List<List<String>> parts = new ArrayList<List<String>>();

    final int N = list.size();
    for (int i = 0; i < N; i += L) {
        parts.add(new ArrayList<String>(
                list.subList(i, Math.min(N, i + L))));
    }
    return parts;
}

来自这个问题的方法 regIdsThousands 感谢polygenelubricants

4

1 回答 1

5

一次传递 1,000 个 ID。一封邮件的收件人不能超过 1,000 个。

于 2013-01-12T22:20:37.773 回答