转载:https://blog.csdn.net/shaoenxiao/article/details/54561753
今天这篇文章只讲一下怎么使用Handler实现子线程与子线程之间、子线程与主线程之间如何进行通信,关于具体的内部实现因为我也没研究过,所以这篇文章讲不了。
一、子线程向主线程传值:
这个实现比较简单,因为主线程自带Looper机制,所有我们不用创建Looper了,看一下代码吧:
首选在主线程里创建一个Handler
1.Handler mHandler = new Handler(){
2.
3. @Override
4. public void handleMessage(Message msg) {
5. super.handleMessage(msg);
6. switch (msg.what) {
7. case 0:
8. //do something,refresh UI;
9. break;
10. default:
11. break;
12. }
13. }
14.
15.};
然后开启一个子线程,在子线程里直接使用Handler发送消息即可
new Thread() {
public void run() {
Message message = new Message();
message.obj = "子线程发送的消息Hi~Hi";
mHandler .sendMe