现在的位置: 首页 > 综合 > 正文

Looper和Handler机制

2013年09月15日 ⁄ 综合 ⁄ 共 493字 ⁄ 字号 评论关闭

Looper用来管理消息队列,循环从消息队列中取消息,一个线程只有一个looper,一个线程的消息只能发给自己这个线程,不能跨线程,跨进程。
比如一个activity就是一个UI线程,作为主线程,UI线程会有自己的looper,looper会有一个消息队列。
每个消息的target成员就是一个handler,Handler用来处理消息,它即可以与本线程的looper关联,也可以和别的线程的looper关联上,只要looper作为参数传入构造函数。
handler调用sendMessage函数,就能把消息放入关联上的looper的消息队列里。
比如,子线程可以传入主线程的looper,构造handler,handler可以在子线程把消息放到主线程的消息队列里去。在主线程里可以调用该handler的handleMessage来处理加进去的消息。(原因是,把这个消息的target设为了handler自己,然后再把消息加到主线程的消息队列)


主线程的looper循环取消息,并调用消息的target的handleMessage函数,执行这个消息对应的操作。

这种做法可以,让子线程刷新UI线程。

抱歉!评论已关闭.