为了保证线程安全,android使用handler类来实现其他线程对于UI线程的更新。
handler的使用过程为:
为了更新UI线程里面的数据,所在Activity必须实现 android.os.Handler.Callback 接口,或者实现Handler的内部类。
不管是实现handler内部类还是继承Callback接口,需要重写的方法为handleMessage
@Override
public boolean handleMessage(Message msg) {
switch(msg.what)
{
case 0:
Bundle date=msg.getData();
txt.setText(String.valueOf(date.getInt("time")));
break;
}
return false;
}
当其中一个子线程需要操纵UI线程时,调用Handler对象里sendMessage方法发送一个Message对象即可:
Message msg=new Message();
Bundle date = new Bundle();// 存放数据
date.putInt("time", total);
msg.setData(date);
msg.what=0;
myHandler.sendMessage(msg);
另一种方法也可以实现这个功能:
Message msg=myHandler.obtainMessage();
Bundle date = new Bundle();// 存放数据
date.putInt("time", total);
msg.setData(date);
msg.what=0;
msg.sendToTarget();
msg.what来区分对UI的修改来自哪个不同的线程
本文介绍了Android中如何通过Handler类安全地更新UI线程。主要内容包括:如何实现Handler.Callback接口或Handler内部类,以及如何使用sendMessage方法发送Message对象来更新UI。

1398

被折叠的 条评论
为什么被折叠?



