在android中利用多线程实现对控件的更新(动态修改文本框中的值)。简述原理并上传代码。

来源:互联网 发布:深夜福利直播软件 编辑:程序博客网 时间:2024/05/29 03:35

package hbsi.csdn.3G;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;

public class XianchengceshiActivity extends Activity {
TextView t ;
/** Called when the activity is first created. */
Handler handler ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
t=(TextView) findViewById(R.id.textView1);
handler =new Handler(){// 创建一个handler对象 ,用于监听子线程发送的消息
public void handleMessage(Message msg)//接收消息的方法
{
String str = (String)msg.obj;//类型转化
t.setText(str);//执行
}
};
new Thread()// 创建子线程
{
public void run()
{
for(int i = 0 ;i <100; i++)
{
try {
sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Message msg = new Message();//创建消息类
msg.obj="线程进度 :"+i;//消息类对象中存入消息
handler.sendMessage(msg);//通过handler对象发送消息
}


}
}.start();

}

}

原理:

在Android 多线程中要注意的一点是, 在多线程中不能够更新界面的控件, 因为控件的更新只能由主线程来完成。

但是我们可以通过Handler 这个对象来对主线程中的控件进行更新。

在多线程中如果想更新主线程的控件, 需要向主线程的Handler对象发送一个消息及参数, 让更新在该对象方法中处理。

原创粉丝点击