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 循环。
我在全局变量中设置字母个数:
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 循环。