2012-06-28 2 views
0

나는 asyncTasks 일련의 하나씩 다른에서 pdf 파일을 다운로드 할 수 있습니다.하지만 때로는 내가 응용 프로그램을 최소화하고 다음 (백그라운드에서 다운로드)와 함께 다시 시작하면 다음 asyncTask 현재 실행중인 asyncTask가 preExcute ie에 걸린 직후에 실행될 수 있습니다. doInBackground가 수행되고 있지 않습니다. 도와주세요.비동기 작업 doInBackground 수행되지 않았습니다

+0

앱을 최소화하고 다시 실행하면 asyncTask를 취소하십시오 .... –

답변

1

이 문제는 AsyncTasks의 알려진 문제입니다. AsyncTasks의 기본 실행 프로그램은 SERIAL_EXECUTOR입니다. 이 실행 프로그램의 큐에 5 개의 AsyncTask를 가질 수 있습니다. 그 후에는 새로운 제작을 중단합니다 Threads.

이 작업을 수행 할 경우

public void someMethod() { 
    new MyAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
} 

이 풀 당신의 스레드가 다른 집행에 AsyncTasks를 실행하는 것입니다. 하지만 최대 값은 15입니다.하지만 가장 좋은 방법은 스레드를 병렬로 실행하고 SERIAL_EXECUTOR을 대기열에 넣고 하나씩 실행하는 것입니다.