0

안녕하세요, Google 캘린더에 캘린더에 안드로이드 앱용 캘린더 API 서비스가 추가되었습니다. Yaniv Inbar가 만든 calendersample 프로젝트를 훌륭한 템플릿으로 사용했습니다. 선택한 캘린더에 1 개의 이벤트를 삽입 할 때 완벽하게 작동하지만 일괄 처리를 시도 할 때 캘린더에 이벤트를 추가하면 잘못된 상태 예외가 발생합니다.Google 캘린더에 일정 추가하기

예제에서 이와 같이 캘린더를 일괄 추가 할 수 있습니다. 전체 클래스는 대신 캘린더의 이벤트가 될 수 있도록 내가 클래스를 다시 썼다 여기 AsyncBatchInsertCalendars.java

@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(); 
} 

찾을 수 있습니다. 전체 클래스를 보면을 doInBackground 메소드에서 볼 수 있습니다. 또한 arraylist를 통해 이벤트 목록을 만듭니다. 지정된 달력에 삽입 할 일괄 처리에 추가해야합니다.

@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() 

오류의 전체 스택 트레이스는 페이스트 빈 log.txt에서 여기에서 찾을 수 있습니다 얻을 사용하는 경우. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 아니면 코드를 잘못 구현 했습니까? 전체 코드는 여기 pastbin에서 찾을 수 있습니다 AsyncBatchInsertEvent.java

+0

이 부분을 좀 더 연구했으며 batch.execute()와 같습니다. 잘못된 원인 일괄 처리 대기중인 항목이 0 개 있습니다. batch.size()를 실행하면 출력은 0입니다. – Aegis

답변

1

어리석은 날, arraylist 이벤트는 비어 있었기 때문에 문자열 == 문자열 string.equels (string) 대신에 검사했습니다.

관련 문제