私は、GoogleコードでここにあるいくつかのGoogleカレンダー機能を統合するためにGoogleが提供するサンプルAndroidアプリケーションに苦労しています。
元のコードを少し変更しました。具体的には、326行目のCalendarAndroidSample.javaクラスで次のように変更しました。
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がnullになることはないため、ループが作成されます。しかし、なぜこれはカレンダーイベントを追加した場合にのみ発生するのですか?
編集:
いくつかのカレンダーイベントを削除すると、機能し始めました。カレンダーに25を超えるイベントがあるように見えますが、ループし始めますか?これはどういう意味ですか?