Android中对UI更新经常使用Handler。
Handler handler=new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
//……
break;
}
super.handleMessage(msg);
}
};
如果下面情况,则容易出现异常
public Message msg=new Message();
//……
if(/**/){
msg.what=1;
handler.sendMessage(msg);
}else if(/**/){
msg.what=2;
handler.sendMessage(msg);
}else{
msg.what=3;
handler.sendMessage(msg);
}
上面所描述的public指msg是在其他地方定义的。而if语句比如在某个循环里面,这样就容易出现异常。
正确使用如下
if(/**/){
Message msg=new Message();
msg.what=1;
handler.sendMessage(msg);
}else if(/**/){
Message msg=new Message();
msg.what=2;
handler.sendMessage(msg);
}else{
Message msg=new Message();
msg.what=3;
handler.sendMessage(msg);
}