在单线程的程序当中,主线程在处理大数据或者访问网络资源,UI主线程往往会卡住,出现点不动的现象(UI线程被阻塞),这种情况下,一般 会用多线程来处事,单独开一个子线程进行数据处理,这就会遇到一个问题,子线程更新的数据如何反映到UI主线程中,这就要用到Handler,它的主要功 能是接受子线程发送的数据, 并用此数据配合主线程更新UI。具体用法也蛮简单:
1. 在子线程串发送message
Message msg = new Message();
Bundle b = new Bundle();// 存放数据
b.putString(“color”, “我的”);
msg.setData(b);
MainActivity.this.myHandler.sendMessage(msg);
2. Handler中的handleMessage接收消息,并把接收中包含的数据更新至ui界面中国
super.handleMessage(msg);
Bundle b = msg.getData();
String color = b.getString(“color”);
MainActivity.this.buttonStart.append(color);
时间: 2024-10-27 17:51:48