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
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.