【发布时间】:2011-06-19 15:26:29
【问题描述】:
我一直在努力使用 Google 提供的示例 android 应用程序,用于集成在 Google 代码中找到的一些 Google 日历功能 here。
我只是稍微修改了原始代码。具体来说,在第 326 行的 CalendarAndroidSample.java 类中,我已修改:
CalendarUrl url = CalendarUrl.forAllCalendarsFeed();
现在计算:
CalendarUrl url = CalendarUrl.forEventFeed(settings.getString("accountName", "NULL"), "private", "full");
这可以很好地用我日历中的所有事件填充列表视图。
每当我将事件添加到我的谷歌日历时,就会发生无限循环。一旦添加了一个新事件,示例应用程序就会冻结,查看 DDMS 我可以看到 logcat 不断地吐出这个:
06-19 11:19:28.556: DEBUG/dalvikvm(7493): GC_FOR_MALLOC freed 11761 objects / 519744 bytes in 39ms
我发现阻止应用循环的唯一方法是删除日历事件。一旦日历事件被删除,应用程序就会恢复活力并列出我的事件,但是,列表视图现在包含我的所有事件,一遍又一遍地重复。就像饲料永远不会停止一样。
我最好的猜测是在第 333 行,代码如下:
String nextLink = feed.getNextLink();
if (nextLink == null) {
break;
nextLink 永远不会变为 null,从而创建循环。但是为什么只有当我添加日历事件时才会发生这种情况?
编辑:
我删除了一些日历活动,它开始工作了。好像日历有超过 25 个事件,它开始循环?这是什么意思?!
【问题讨论】:
-
我使用了 url.maxResults = 2000 这似乎已经纠正了这个问题......这是修复循环的正确方法吗?
标签: android google-calendar-api google-api-java-client