Handler类同一类(或内部类)中使用
handle在同一类中使用其实是比较简单的,就列举一个定时器的例子
public Jiasudu() {
Handler handler;
handler = new Handler(){ //1.1
public void handleMessage(Message msg) { //1.2
if(msg.what==200)//这是接收本类中定时器发送过来的信号用来更新正方体
updateXYZ();
}
};
task = new TimerTask(){
public void run() {
Message msg = new Message(); //2.1
msg.what=200;//这是发送给当前类中用来更新立方体的
handler.sendEmptyMessage(msg.what); //2.2
}
};
timer.schedule(task, 0, 7000);
}
Handler handler;
handler = new Handler(){ //1.1
public void handleMessage(Message msg) { //1.2
if(msg.what==200)//这是接收本类中定时器发送过来的信号用来更新正方体
updateXYZ();
}
};
task = new TimerTask(){
public void run() {
Message msg = new Message(); //2.1
msg.what=200;//这是发送给当前类中用来更新立方体的
handler.sendEmptyMessage(msg.what); //2.2
}
};
timer.schedule(task, 0, 7000);
}
注:因为timetask对象本质就是启动一条新的线程,所以直接相应了handler不同线程使用的规则
程序使用Handler步骤
1.接收方
1.1创建Handler子类的实例
1.2在其中重写handlermessage()方法用来接收消息
2.发送方
2.1创建message实例
2.2发送消息,此处只是发送了个空消息,并没有发送数据
注:此处的handler是指接收方创建的Handler实例,关于不同类中该怎么处理请看下篇
关于不同类中发送数据和消息请看下篇