우선, 나쁜 영어로 유감입니다. 나는 안드로이드 2.3을 가지고 있으므로 순차적 인 실행 대신에 "실제"병렬 AsyncTask가있다 (안드로이드 3.0 이상). 여러 개의 AsyncTask가 있는데, 각각은 onPostExecute() 콜백을 실행합니다 (UI 스레드에서 실행됨을 알고 있습니다). 2 개의 병렬 AsyncTask 만 있고 첫 번째 작업이 해당 작업을 완료하면 콜백 onPostExecute()가 호출됩니다. 첫 번째 AsyncTask의 onPostExecute() 메서드가 UI 스레드에서 실행되는 동안 두 번째 작업이 첫 번째 AsyncTask의 onPostExecute()의 현재 실행을 방해하는 onPostExecute() 메서드를 호출 할 수 있습니까?여러 AsyncTask의 onPostExecute 주문
// 업데이트] 은 지금 코드로 설명합니다
// AsyncTask1
onPostExecute(Result result) {
activity->processResult1(result);
}
// AsyncTask2
onPostExecute(Result result) {
activity->processResult2(result);
한다고 가정 AsyncTask1가 작업을 완료하고 processResult1()가 매우 긴 방법 실행되고 있는지 : 우리는 UI 스레드에서 processResult1()를 실행하는 동안, AsyncTask2는 작업을 완료합니다. 지금은 어떻게됩니까?
- processResult1는() processResult2()
- processResult2()에 의해 중단됩니다) (processResult1 때까지 기다립니다 "잘못"진짜 "그래서 거기에"
그러나 onPostExecute 메소드에서 실행되는 하나의 실행 가능 객체는 UI 스레드를 실행하는 다른 비동기 태스크를 인터럽트 할 수 있습니다. 나는 이것이 사이러스가 묻는 것이라고 생각했다. –
@ 윌리엄 모리슨 네, 바로 당신입니다. 그러나, 나는 Cyrus가 두 가지 완료된 작업에 대해 묻고 있다고 생각합니다. –
@CyrusSmith 나는 내 대답을 약간 편집했습니다. 나는 그 ** 방법 **을 의미하지, 그들 자신이 아니라 태스크 –