简体   繁体   English

Android Gmail API setMaxResult不起作用

[英]Android Gmail API setMaxResult not working

I set number of letters in global variable: 我在全局变量中设置字母数:

private static final long MAX_RESULTS_PER_REQUEST = 10;

next, I add this condition to get list query: 接下来,我添加此条件以获取列表查询:

            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;
            }
        }

but ".setMaxResults(MAX_RESULTS_PER_REQUEST)" don't work: 但是“ .setMaxResults(MAX_RESULTS_PER_REQUEST)”不起作用:

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

You are checking the size of the messages List which keeps getting added to as you are iterating through the available pages and adding more messages to it. 您正在检查messages列表的大小,该列表在迭代可用页面并向其中添加更多消息时会不断添加。

The first call to response.getMessages() should be enough if you only want 10 messages returned, and you won't need the for loop. 如果只想返回10条消息,并且不需要for循环,那么对response.getMessages()的第一次调用就足够了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM