두 번째로 단추를 클릭하면 현재 실행중인 작업을 취소하고 다시 작성하는 검색 작업이 있습니다.'작업이 이미 실행되었습니다'로 다시 인스턴스화 된 비동기 작업 호출이 실패했습니다.
if (_searchAsyncTask != null) {
// cancel if already running
_searchAsyncTask.cancel(true);
}
_searchAsyncTask = new SearchAsyncTask(this);
_searchAsyncTask.execute(data);
원래 비동기 작업을 다시 호출 한 것처럼 위 코드의 마지막 줄에 오류가 있습니다.
java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)
내가 누락 된 상품이 있습니까? 원래 인스턴스가 취소 될 때까지 기다려야합니까?
표면적으로는 코드를 전혀 손상시킬 수 없습니다. 새 인스턴스를 해고하면 예외가 발생하지 않아야합니다. 당신은 그 사이에 (배경으로부터) 또는 그 효과에 이르기까지 앱을 다시 시작할 기회가 있습니까? – dineth
또한이 버전이 실행되는 Android 버전은 무엇입니까? – dineth
이것은 테스트 사용자의 디버그 정보에서 나왔습니다. 특히 '두 번째 실행'문제를 발견하고이를 대체 했으므로이를보기 매우 놀랍습니다. 4.0.3에서 실행 중입니다. –