2011-09-28 5 views
1

만약 내가 제대로 가지고있어 처리기는 대기열처럼 작동합니다. 그래서 내 간단한 질문은 내가 처음 게시 지연 및 그 이후에 내가 정기적으로 게시 할 수 있습니다. 첫 번째 지연된 게시물 이후 두 번째 게시물이 실행됩니까? 안드로이드에서 처리기에 대한 질문

handler.postDelayed(someMethod(), 10000); 
handler.post(someOtherMethod()); 

는 것으로 someMethod 후 someOtherMethod() 실행은()

답변

1

아니요. 두 번째 것은 UI 스레드에서 보류중인 모든 처리기 요청이 완료되면 즉시 수행됩니다. 첫 번째 항목은 10 초 후에 추가됩니다.

힌트 : 핸들러는 Runnable 소요, 그래서 그 다음과 같습니다 코멘트를 기반으로

handler.post(new Runnable { 
    public void run() { 
     doSomething(); 
    } 
} 

업데이트 :

핸들러는 호출 new Handler()가 호출되는 스레드에서 실행 가능한 게시 .

+0

좋아요. 고맙습니다! – johan

+0

환영합니다 ;-) – Knickedi

+0

UI 스레드에서 분리 스레드의 서비스에서 실행하더라도이 문제가 발생합니까? – johan

0

아니, 2 포스트는 가능한 한 (1 일 이전) 즉시 실행됩니다.

0

아니요, 처리기 게시물은 비동기입니다. handler.post()은 메시지 큐에 실행 파일을 추가합니다. handler.postDelayed()은 즉시 메시지 큐에 실행 파일을 추가하지만 타이머는 지연된 ms로 설정되고 그 후에 실행 파일이 실행됩니다.

그래서 모든 게시물은 메시지 큐에 실행 파일을 추가합니다.