【问题标题】:Android Gmail API setMaxResult not workingAndroid Gmail API setMaxResult 不起作用
【发布时间】:2017-04-13 15:25:39
【问题描述】:

我在全局变量中设置了字母数:

private static final long MAX_RESULTS_PER_REQUEST = 10;

接下来,我添加这个条件来获取列表查询:

            List<String> labelsId = new ArrayList<>();
        labelsId.add("INBOX");

        ListMessagesResponse response = mService.users().messages().list(user)
                .setLabelIds(labelsId)
                .setMaxResults(MAX_RESULTS_PER_REQUEST)
                .execute();
        List<Message> messages = new ArrayList<Message>();
        while (response.getMessages() != null) {
            messages.addAll(response.getMessages());
            if (response.getNextPageToken() != null) {
                String pageToken = response.getNextPageToken();
                response = mService.users().messages().list(user)
                        .setPageToken(pageToken).execute();
            } else {
                break;
            }
        }

但是“.setMaxResults(MAX_RESULTS_PER_REQUEST)”不起作用:

Log.i("messages.size()", String.valueOf(messages.size())); //here 1644 not 10

【问题讨论】:

  • response.getMessages() 的初始大小是否等于 10?可能发生此错误是因为您不断获取下一页令牌并获取下一页的邮件,而不是因为 Gmail 正在返回 1644 封邮件。

标签: android gmail-api


【解决方案1】:

您正在检查 messages 列表的大小,当您遍历可用页面并向其中添加更多消息时,该列表会不断添加。

如果您只希望返回 10 条消息,第一次调用 response.getMessages() 就足够了,而且您不需要 for 循环。

【讨论】:

  • 太棒了!如果此答案对您有帮助,请单击左侧的复选标记将其标记为已接受。
猜你喜欢
  • 2014-12-01
  • 2018-07-25
  • 2017-08-02
  • 2021-08-24
  • 2017-02-19
  • 2017-09-11
  • 2023-04-03
  • 2017-02-24
  • 2016-10-05
相关资源
最近更新 更多