在分析Android消息机制之前,我们先来看一段代码:
public class MainActivity extends Activity implements View.OnClickListener {
private TextView stateText;
private Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
stateText = (TextView) findViewById(R.id.tv);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
new WorkThread().start();
}
//工作线程
private class WorkThread extends Thread {
@Override
public void run() {
//......处理比较耗时的操作
//处理完成后改变状态
stateText.setText("completed");
}
}
}这段代码似乎看上去很正常,但是当你运行时就会发现,它会报一个致命性的异常:
ERROR/AndroidRuntime(421): FATAL EXCEPTION: Thread-8
ERROR/AndroidRuntime(421)

本文介绍了Android中的消息机制,强调了视图组件必须在主线程更新的重要性,并详细解释了Handler、Looper和MessageQueue的角色。通过示例代码展示了如何在子线程中通过Handler通知主线程进行视图更新,同时说明了主线程的Looper和消息循环是如何工作的。
最低0.47元/天 解锁文章
3632

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



