Android_Handler의 HandlerMessage 방법

2900 단어 교육 노트
handlerMessage를 사용할 때handler 대상을 만들 때handlerMessage 방법을 다시 써야 합니다. 이 방법에는 매개 변수가 있습니다. 이것은 Message 형식입니다.이 메서드에서 UI 인터페이스의 내용을 수정합니다.나중에 예를 들어 상세하게 소개할게요.주 스레드에 하위 스레드를 만들고 하위 스레드의run 방법에 메시지 대상을 만들고 메시지 대상에 값을 부여하며sendMessage 방법으로 보냅니다.
핸들러 메커니즘에 대해 나는 이렇게 이해한다.하위 스레드를 통해 UI 인터페이스를 수정하려면 이때handler를 빌려야만 이 기능을 실현할 수 있다.handler는 하위 스레드와 메인 스레드를 연결하는 다리다.
package com.example.handlerdemo1;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.*;

public class MainActivity extends Activity {
    TextView text;
    int num=0;
    Handler handler=new Handler(){
        public void handleMessage(android.os.Message msg) {
            text.setText(""+msg.obj);
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text=(TextView) findViewById(R.id.textView1);
        new Thread(){
            public void run() {
                while(true){
                    num++;
                    Message message=new  Message();
                    message.obj="hahahahhaha"+num;
                    handler.sendMessage(message);
                }
            };
        }.start();
    }
}

이 예와 이전 예의 사고방식은 많지 않다. 여기에 익명 내부 클래스를 사용했다.
메시지 대상도 실례화 없이 시스템의 메시지 대상을 직접 호출하면 된다.
Message message=handler.obtainMessage();
message.sendToTarget() 방법과 handler.sendMessage()의 역할은 같다. sendToTarget 방법의 원본 코드를 보면 알 수 있다.

좋은 웹페이지 즐겨찾기