技术博客一:Android中的多线程

当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) ,主线程为管理界面中的UI控件,进行事件分发,比如说,你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。

技术博客一:Android中的多线程

如果此时需要一个耗时的操作,例如: 联网读取数据,或者读取本地较大的一个文件的时候,如果把这些操作放在主线程中的话,界面会出现假死现象,如果5秒钟还没有完成的话,会收到Android系统的一个错误提示 “强制关闭”。

这个时候我们就需要把这些耗时的操作,放在一个子线程中。

技术博客一:Android中的多线程

但更新UI的操作只能在主线程中进行,子线程中操作是危险的。(如果多个线程都拥有更新UI的功能,它们同时更改UI,界面就会混乱。)
所以主线程和子线程之间的配合,需要异步消息的传递。
这个时候,Handler就出现了,来解决这个问题。
可以把它看作一个消息接收和发送器,子线程通过Handler通知主线程自己已经完成操作。
技术博客一:Android中的多线程
主线程接到通知后更新UI。

文章部分取自http://mobile.51cto.com/aprogram-442833.htm