Android Gmail API setMaxResult 不工作

Android Gmail API setMaxResult not working

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

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

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

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