안드로이드 연구 노트 메커니즘 일을 처리하는 핸들러의 메시지를

및 하위 복수의 스레드 (또한 작업자 스레드) 프로세스에서의 Andorid 내의 thread 적어도 일반적으로, 메인 스레드 (또는 스레드 UI)가있다.
보안상의 이유로, 하위 스레드가 동적으로 메인 스레드의 구성 요소의 속성 값을 변경할 수 없습니다 : 안드로이드의 규칙이있다.
그러나 약간의 시간이 소요되는 작업을 수행하기 위해, 그들은 종종 자식 스레드를 넣어 주 스레드가 UI를 업데이트 완료, 그래서 메커니즘을 처리하는 핸들러 메시지가있다.
핸들러는 자식 스레드 sendMessage 첨부 () 메소드에 의해, 전사 스테이션에 해당하므로 메인 쓰레드 업데이트 자식 스레드를 달성하도록, 메인 쓰레드에 따라 전송 관련 메시지 핸들러를 처리 객체 처리기에 메시지를 전송처럼.
다음 쓰기 데모 :
1. 레이아웃, 텍스트 뷰와 버튼, 버튼 클릭 실현의 효과 텍스트 뷰의 아이 thread의 값의 변화. 도시 된 바와 같이
그림 삽입 설명 여기
2.MainActivity에 (주 패킷 처리기 OS를 가져올 수 있음)

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView textView= (TextView) findViewById(R.id.text);
        Button button= (Button) findViewById(R.id.button);
        final Handler handler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                if (msg.what==123){
                    textView.setText("sb");
                }
            }
        };
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        handler.sendEmptyMessage(123);
                    }
                }).start();
            }
        });
    }
게시 28 개 원래 기사 · 원의 찬양 (15) · 전망 7840

추천

출처blog.csdn.net/qq_34423913/article/details/104525561