android开发中:
子线程负责耗时的工作,主线程负责更新UI
那么,在子线程中获取的数据,怎么样传递给主线程昵
其实很简单,就是通过本篇文章所讲的handler对象
handler的使用也比较简单,就是在主线程中定义一个handler对象,并且实现消息处理的方法,然后在子线程中将数据发送出去,具体请看如下代码:
public class MainActivity extends Activity {
public TextView tt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tt = (TextView) findViewById(R.id.text01);
myThread dd = new myThread();
dd.start(); //开启一个线程
}
//子线程向主线程传递数据,就是通过这个handler对象
public Handler hd = new Handler() {
public void handleMessage(Message msg) {
tt.setText(msg.obj+"");
};
};
class myThread extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try {
Thread.sleep(5000); //线程等待5秒,然后再往下执行
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Message mm = new Message();
mm.obj = "xu hai tao";
hd.sendMessage(mm);
}
上面代码运行结果如下:
运行后的画面如下:
程序等待几秒之后,进入下面页面:
FR:海涛高软(hunk Xu) QQ技术交流群:386476712