안드로이드 스레드 처리의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에 따라 라이센스가 부여됩니다.