为什么要使用线程
- 当主线程执行的操作时间过长,就无法执行其他操作。消息队列中的消息无法处理,UI界面就不会更新,用户事件也不会处理。
- 如果主线程执行一个操作超过5秒,Android可能会弹出一个应用程序没有响应的对话框了,你的activity可能会被杀掉。
- 常见的耗时操作
- 网络连接和网络数据的获取
- 对储存器的读写
- 大量的数据计算
一、消息队列
- Android采用一种复杂的Message Queue机制保证线程间的通信
- Message Queue是一个消息队列,用来存放通过Handler发布的消息。 Android在第一次启动程序时会默认为UI线程创建一个关联的消息队列,用来管理程序组件,如:Activity,Service、Broatcast Recevier等。
- 可以在工作线程中创建Handler与UI线程进行通信。
三、Handler的编程接口