Android Gmail API setMaxResult无效

时间:2016-11-29 15:06:10

标签: android gmail-api

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

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

1 个答案:

答案 0 :(得分:1)

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

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