2012-10-11 4 views
0

처리기 메시지 대기열은 어떻게 작동합니까? 나는 메시지 대기열이 초기화 된 스레드에 묶여 있다는 사실을 안다. 나는 2 개의 작업 (각 웹에서 다운로드)을 가지고 있고 각각 하나씩 처리기에서 비동기 작업을 시작하면 2 개의 작업이 수행된다. 동시에 실행될 수 있습니까?Android의 처리기에서 AsyncTasks 시작하기

큐가 작동하는 방식을 이해해야합니다. 아무도 도와 주실 수 있습니까? :)

답변

0

우선 UI 스레드에서만 AsyncTask을 실행할 수 있습니다. 따라서 두 개의 별도 핸들러 (각 AsyncTask에 하나씩)가 있더라도 UI 스레드와 연관되어 있어야합니다.

보조, 여러 AsyncTask 인스턴스는 동시에 또는 하나씩 실행할 수 있습니다. API 버전에 따라 다릅니다. 이에 대한 documentation을 읽어 것이 좋습니다 :

공공 최종 AsyncTask를이

지정된 매개 변수를 사용하여 작업을 실행합니다 (...에 Params PARAMS)를 실행합니다. 호출자가 참조를 유지할 수 있도록 작업 자체가 반환됩니다 (this).

참고 :이 함수는 플랫폼 버전에 따라 단일 스레드 또는 스레드 풀에 대한 대기열에 작업을 예약합니다. 처음 소개되었을 때 AsyncTasks는 단일 배경 스레드 에서 연속적으로 실행되었습니다. DONUT에서 시작하여 이것은 복수 작업이 병렬로 작동 할 수 있도록 스레드 풀로 변경되었습니다. HONEYCOMB를 시작하면 병렬 실행으로 인해 발생하는 일반적인 응용 프로그램 오류를 피하기 위해 단일 스레드에서 작업이 다시 실행됩니다. 병렬 실행을 진정으로 원할 경우이 메소드의 executeOnExecutor (Executor, Params ...) 버전을 THREAD_POOL_EXECUTOR와 함께 사용할 수 있습니다. 그러나 경고에 대한 주석을 참조하십시오.

+0

감사합니다. 톤 감사합니다. :) – user1738744

+0

만족한다면 답변을 수락하십시오. –