我在全局变量中设置了字母数:
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
答案 0 :(得分:1)
您正在检查messages
列表的大小,当您迭代可用页面并向其添加更多消息时,该列表会不断添加。
如果您只想要返回10条消息,那么第一次调用response.getMessages()
就足够了,而且您不会需要for循环。