先看这句话的翻译哈。只有创建视图层次结构的原始线程才能触摸其视图。
一般这种错误出现在子线程中操作主线程的控件的操作中,比如更新等操作。
解决这类问题,需要使用Handler。关于Handler是什么,大家可以自行去百度哈。
先看代码。
这是一个子线程
new Thread(new Runnable() {
@Override
public void run() {
/** 处理复杂的操作 */
}
}).start();
创建Handler 是在主类里面创建的
private static final int flag = 0;
private static Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what == flag){
/**
* 需要完成对控件的更新等一些操作
/
}
}
};
再添加这句话,就可以啦
new Thread(new Runnable() {
@Override
public void run() {
/** 处理复杂的操作 */
}
}).start();
Message message = new Message();
message.what = COMPLETED;
handler.sendMessage(message);