안녕하세요, 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
이 부분을 좀 더 연구했으며 batch.execute()와 같습니다. 잘못된 원인 일괄 처리 대기중인 항목이 0 개 있습니다. batch.size()를 실행하면 출력은 0입니다. – Aegis