80,351
社区成员
发帖
与我相关
我的任务
分享
public class Looper01Activity extends Activity {
private TextView view;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.looper01);
view = (TextView)findViewById(R.id.lp_tv_view);
view.setText("0");
MyThread mt = new MyThread(view);
mt.start();
}
private class MyThread extends Thread{
private TextView v;
private Handler mh;
public MyThread(TextView v){
this.v = v;
}
@Override
public void run() {
super.run();
Looper.prepare();
mh = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
v.setText(msg.what + ""); //会在执行这句话的时候报错
//如果发消息时用的是sendMessage不报错,
//用sendMessageDelayed就会报错
}
};
Message msg = new Message();
msg.what = 3;
mh.sendMessage(msg);
// mh.sendMessageDelayed(msg, 1000); //如果这么发消息就会报错,
// 错误信息是 //android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Looper.loop();
}
}
}