报错:Only the original thread that created a view hierarchy can touch its views.-只有创建这个View的原线程才能操作这个View
Handler是Android消息机制的上层接口,通过handler,可以将一个任务切换到handler所在的线程中执行,通常将子线程获取的数据通过handler传递到主线程后,再对UI进行操作
代码如下:
private Handler handler=new Handler(new Handler.Callback()
{
@Override
public boolean handleMessage(@NonNull Message msg)
{
switch (msg.what)
{
case 200:
...//操作UI
break;
}
return false;
}
});
//线程中
public void ...(){
...
new Thread(new Runnable() {
@Override
public void run() {
Message msgs=new Message();
msgs.what=...//消息状态,int类型,描述消息
msgs.obj=...//消息的对象,内容
handler.sendMessage(msgs);
}
});
...
}