Android View.post(Runnable )

http://www.cnblogs.com/qingblog/archive/2012/08/08/2628245.html
http://www.cnblogs.com/qingblog/archive/2012/08/08/2628245.html
http://www.cnblogs.com/qingblog/archive/2012/08/08/2628245.html
http://www.cnblogs.com/qingblog/archive/2012/08/08/2628245.html
Android View.post(Runnable )
Runnable 은 반드시 새로 스 레 드 를 여 는 것 이 아 닙 니 다.예 를 들 어 다음 호출 방법 은 UI 메 인 스 레 드 에서 실행 되 는 것 입 니 다.
     Handler mHandler=new Handler(); 
     mHandler.post(new Runnable(){ 
        @Override public void run() 
        { // TODO Auto-generated method stub 
         } 
     });

이 방법 에 대한 공식 적 인 설명 은 다음 과 같 습 니 다."The runnable will be run" on the user interface thread. ”
boolean android.view.View .post(Runnable action)
Causes the Runnable to be added to the message queue. The runnable will be run on the user interface thread.
Parameters: action The Runnable that will be executed.
Returns:
Returns true if the Runnable was successfully placed in to the message queue. Returns false on failure, usually because the looper processing the message queue is exiting.
우 리 는 handler 의 post 방법 을 호출 하여 Runnable 대상(일반적으로 Runnable 의 하위 클래스)을 전달 할 수 있 습 니 다.handler 는 looper 에서 이 Runnable 의 Run 방법 을 호출 하여 실행 합 니 다.
Runnable 은 하나의 인터페이스 로 하나의 스 레 드 가 아니 라 일반 스 레 드 는 Runnable 을 실현 합 니 다.따라서 익명 내부 클래스 를 사용 하면 UI 메 인 스 레 드 에서 실 행 됩 니 다.이 Runnable 인 터 페 이 스 를 실현 하 는 스 레 드 클래스 를 사용 하면 해당 스 레 드 에서 실 행 됩 니 다.
구체 적 으로 말 하면 이 함수 의 작업 원 리 는 다음 과 같다.
View.post(Runnable)방법.post(Runnable action)방법 에서 View 는 현재 스 레 드(즉 UI 스 레 드)의 Handler 를 얻 은 다음 action 대상 post 를 Handler 에 넣 습 니 다.Handler 에 서 는 전 달 된 action 대상 을 Message(Message 의 callback 을 action)로 포장 한 다음 UI 스 레 드 의 메시지 순환 에 투입 합 니 다.Handler 가 이 Message 를 다시 처리 할 때,하나의 지점(설명 되 지 않 은 항목)은 runnable 의 run 방법 을 직접 호출 하 는 것 입 니 다.이 때 는 UI 스 레 드 로 연결 되 어 있 기 때문에 걱정 없 이 UI 를 업데이트 할 수 있 습 니 다.
다음 그림,앞에서 보 이 는 코드,여기 Message 의 callback 은 Runnable 의 익명 내부 클래스 입 니 다.
이런 상황 에서 새로운 스 레 드 에서 사용 되 는 것 이 아니 기 때문에 복잡 한 계산 논 리 를 하지 마 세 요.
android 에서 handler.post();view.post();경험 있 는 개발 자 분 들 의 수고 에 대한 답~~
2012-11-22 21:29
 질문 자 현상:
10 점 
| 익명 

사이트 이용 
|
 1867 회 탐색 하기
android handler.post(); view.post();        ui  
      ,  view.post()        handler,   handler.post(),        , view.post         ,     new handler,            handler,                ?        handler    view.post
  ,handler AsyncTask         ?    ?
             ,  !

다음으로 공유:
2012-11-23 13:27
네티즌 채택
       

        、   view       

좋은 웹페이지 즐겨찾기