Android 向google日历批量添加事件

Android 向google日历批量添加事件,android,google-calendar-api,google-api-java-client,android-calendar,Android,Google Calendar Api,Google Api Java Client,Android Calendar,大家好,我正在尝试使用google api java客户端和android应用程序的日历api服务将事件添加到日历中。我使用Yaniv Inbar创建的calendersample项目作为模板,效果非常好。将1个事件插入到所选日历时效果很好,但当我尝试向日历批量添加事件时,会出现非法状态异常 在本例中,您可以像这样批量添加日历。 整个班级都可以在这里找到 错误的完整stacktrace可在pastebin中找到。是否有人知道如何修复此问题,或者我是否错误地实现了代码?整个代码可以在pastbin

大家好,我正在尝试使用google api java客户端和android应用程序的日历api服务将事件添加到日历中。我使用Yaniv Inbar创建的calendersample项目作为模板,效果非常好。将1个事件插入到所选日历时效果很好,但当我尝试向日历批量添加事件时,会出现非法状态异常

在本例中,您可以像这样批量添加日历。 整个班级都可以在这里找到


错误的完整stacktrace可在pastebin中找到。是否有人知道如何修复此问题,或者我是否错误地实现了代码?整个代码可以在pastbin中找到,arraylist事件是空的,因为我检查了string==string而不是string.equals(string)。

我对此进行了进一步研究,似乎是batch.execute();错误原因批次包含0个排队项目。运行batch.size()时,输出为0
@Override
protected void doInBackground() throws IOException {
   BatchRequest batch = client.batch();
   for (Calendar calendar : calendars) {
      client.calendars().insert(calendar).setFields(CalendarInfo.FIELDS)
      .queue(batch, new JsonBatchCallback<Calendar>() {
         public void onSuccess(Calendar calendar, GoogleHeaders headers) {
            model.add(calendar);
         }
         @Override
         public void onFailure(GoogleJsonError err, GoogleHeaders headers)
         throws IOException {
            Utils.logAndShowError(activity, CalendarSampleActivity.TAG, err.getMessage());
         }
      });
   }
   batch.execute();
}
@Override
protected void doInBackground() throws IOException {
   BatchRequest batch = client.batch();
   for (Event event : events) {
      client.events().insert(calender.id, event).queue(batch, 
      new JsonBatchCallback<Event>() {
         public void onSuccess(Event event, GoogleHeaders headers) {
            //TODO show succes message.
         }
         @Override
         public void onFailure(GoogleJsonError err, GoogleHeaders headers)
         throws IOException {
            Utils.logAndShowError(activity, EventActivity.TAG, err.getMessage());
         }
      });
   }
   batch.execute();
}
W/dalvikvm(21030): threadid=20: thread exiting with 
uncaught exception (group=0x40c19930)
E/AndroidRuntime(21030): FATAL EXCEPTION: AsyncTask #2
E/AndroidRuntime(21030): java.lang.RuntimeException: An error occured 
while executing doInBackground()