안드로이드 스레드 처리의Handler
                                            
 7083 단어  android
                    
1. 우리는 Handler와 메시지를 통해 완성한다.
     /*
         *   int   
         */
        new Thread(new Runnable() {
            
            @Override
            public void run() {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                Message msg = new Message();
                //mes.arg1、mes.arg2、mes.what:    int   
                msg.arg1 = 1;
                msg.arg2 = 2;
                msg.what = 3;
                handler.sendMessage(msg);
            }
        }).start();메시지에서 전송된 데이터 처리:
//    Handler  ,      handleMessage()  
private Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            if(msg.what==3){
                textview.setText("msg.arg1:"+msg.arg1+"   msg.arg2:"+msg.arg2);
            }else{
                if(msg.what==2){
                    Person person = (Person) msg.obj;
                    textview.setText("  :"+person.getName()+"     :"+person.getSex()+"     :"+person.getYear());
                }
            }
        };
    };2. 메시지의 사용:
위에서 우리가Handler에 보낸 데이터는 모두Int 데이터이다. 이것은 당연히 우리의 일상적인 수요를 만족시킬 수 없다. 그러면 어떻게 Message를 통해Handler에 Object 데이터를 보내는가?Message가 데이터를 쉽게 전달할 수 있도록 obj () 방법을 봉인해 주는 것을 걱정하지 마십시오.
new Thread(new Runnable() {
        
        @Override
        public void run() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Person person = new Person();
            person.setName("  ");
            person.setSex("girl");
            person.setYear(22);
            Message msg = new Message();
            msg.what = 2;
            msg.obj = person;
            handler.sendMessage(msg);
        }
    }).start();
}  Person         :
public class Person {
    private String name;
    private String sex;
    private int year;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getYear() {
        return year;
    }
    public void setYear(int year) {
        this.year = year;
    }
}이 메시지의 데이터 처리는 위에서 보여드렸습니다.
여기를 보면 Handler의 강함을 느낄 수 있지 않나요? 확실히 우리가 다선정 문제를 처리할 때Handler는 매우 편리합니다. 관심 있는 사람은 계속 관심을 가질 수 있습니다. 다음 편은 더욱 흥미롭습니다.
 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.