Я боролся с примером приложения Android, предоставленного Google, для интеграции некоторых функций календаря Google, найденных здесь в коде Google.
Я немного изменил исходный код. В частности, в классе CalendarAndroidSample.java в строке 326 я изменил:
CalendarUrl url = CalendarUrl.forAllCalendarsFeed();
для вычисления:
CalendarUrl url = CalendarUrl.forEventFeed(settings.getString("accountName", "NULL"), "private", "full");
Это прекрасно заполняет просмотр списка всеми событиями в моем календаре.
Бесконечный цикл происходит всякий раз, когда я добавляю событие в свой календарь Google. Как только новое событие добавлено, пример приложения зависает, и, глядя на 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 никогда не становится нулевым, создавая цикл. Но почему это происходит ТОЛЬКО при добавлении события календаря?
EDIT:
Я удалил несколько событий календаря, и он начал работать. Кажется, будто в календаре более 25 событий, он начинает цикл? Что это значит?!