Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android无限循环上google日历的google api java客户端_Android_Google Calendar Api_Google Api Java Client - Fatal编程技术网

Android无限循环上google日历的google api java客户端

Android无限循环上google日历的google api java客户端,android,google-calendar-api,google-api-java-client,Android,Google Calendar Api,Google Api Java Client,我一直在为谷歌提供的示例android应用程序而苦苦挣扎,该应用程序集成了谷歌代码中的一些谷歌日历功能 我只是稍微修改了一下原始代码。具体来说,在第326行的课程中,我修改了: CalendarUrl url = CalendarUrl.forAllCalendarsFeed(); 现在计算: CalendarUrl url = CalendarUrl.forEventFeed(settings.getString("accountName", "NULL"), "private", "ful

我一直在为谷歌提供的示例android应用程序而苦苦挣扎,该应用程序集成了谷歌代码中的一些谷歌日历功能

我只是稍微修改了一下原始代码。具体来说,在第326行的课程中,我修改了:

CalendarUrl url = CalendarUrl.forAllCalendarsFeed();
现在计算:

CalendarUrl url = CalendarUrl.forEventFeed(settings.getString("accountName", "NULL"), "private", "full");
这会将日历中的所有事件填充到listview中

每当我在谷歌日历中添加事件时,就会出现无限循环。一旦添加了一个新事件,示例应用程序就会冻结,查看DDMS,我可以看到logcat无休止地重复说出这一点:

06-19 11:19:28.556: DEBUG/dalvikvm(7493): GC_FOR_MALLOC freed 11761 objects / 519744 bytes in 39ms
我发现阻止应用程序循环的唯一方法是删除日历事件。一旦日历事件被删除,应用程序将恢复运行并列出我的事件,但是,listview现在包含了我的所有事件,并一次又一次地重复。这就像饲料永远不会停止

我最好的猜测是在第333行,代码如下:

String nextLink = feed.getNextLink();
    if (nextLink == null) {
      break;
nextLink永远不会变为null,从而创建循环。但为什么只有在添加日历事件时才会发生这种情况

编辑:


我删除了一些日历事件,它开始工作。似乎如果日历上有超过25个事件,它就会开始循环?这是什么意思

在意识到自己的愚蠢之后,我本来打算删除这篇文章的,但我将把它留给其他像我一样倒下的人

创建无限循环是因为当我的日历中有超过25个事件时,nextLink从未变为null。我猜如果不设置maxResults的值,默认值是25。因此,当我的日历中有超过25个事件时,“null”nextLink永远不可能存在,因为返回的Atom正好有25个事件

如果我将maxResults设置为50,并且日历中只存在49个事件,则第50个nextLink将为null,从而触发循环中断


我刚刚将maxResults设置为一个巨大的数字,比如1000000。我想,如果一个人每天在日历上有10件事,并且活到80岁,那只相当于大约291000件事。我认为1000000是一个安全的数字。

我使用了url.maxResults=2000,这似乎纠正了问题……这是修复循环的正确方法吗?