【android,12】12.handler 与message机制更改界面信息
来源:互联网 发布:软件疲劳强度测试 编辑:程序博客网 时间:2024/04/26 11:31
使用消息机制修改界面的信息:
一、要修改view对象中显示的内容:
只有创建view对象的线程 才可以更新view对象里面的内容。
其实所有的view对象都是在主线程里面创建的 名字 main
所有的与ui相关的界面都是在主线程里面创建的.
二、业务需求:子线程每隔2秒要去修改view对象显示的内容:(要通过消息机制完成该操作):
三、更新view显示基本原理:
当子线程要更新view里的内容时,就让子线程发送一个消息给主线程,主线程再根据消息的内容进行操作。
主线程里面有消息队列(message queue),可以存放一组消息。并且还有一个轮询器,定期的轮询消息队列,查看是否有消息。如果发现有消息,;轮询器会把消息取出来。
在主线程中创建消息的处理者handler对象,用于处理在消息队列中取出的消息。
四、代码实现:
public class TestActivity extends Activity{
privateTextView tv;
//在主线程中创建handler对象(消息处理者)
private Handler handler = new Handler(){
//子线程发送消息触发的函数:
public voidhandleMessage(Message msg) {
super.handleMessage(msg);
String text = (String) msg.obj; //获取消息的内容
tv.setText(text); //将内容设置给view对象。
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) this.findViewById(R.id.tv);
System.out.println(Thread.currentThread().getName());
// tv.setText("haha");
//开启一个子线程 每个2秒 就把textview 里面的内容更改一下
new Thread(){
public void run() {
System.out.println("子线程 "+Thread.currentThread().getName());
for(int i=0;i<100;i++) {
try{
sleep(2000);
}catch (InterruptedException e) {
e.printStackTrace();
}
Messagemsg = new Message();//创建message对象。
msg.obj= "haha"+i; //为消息设置值
handler.sendMessage(msg);//使用handler在子线程中发送消息。
}
};
}.start();
}
}
- 【android,12】12.handler 与message机制更改界面信息
- Android--Handler与Message
- 【Android 开发】: Android 消息处理机制之一: Handler 与 Message
- 【Android 开发】: Android 消息处理机制之一: Handler 与 Message
- 【Android 开发】: Android 消息处理机制之一: Handler 与 Message
- 【Android 开发】: Android 消息处理机制之一: Handler 与 Message
- Android Handler Message 通信机制
- Android Handler Message Looper 机制
- Android的Message机制---Handler、Message、Looper
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- linux网络配置
- ubuntu12.04(32&64位)的安装
- 编程挑战题目--倒水
- 语音识别系统之htk------孤立词识别(yesno)
- windows xp下安装nfs客户端,使得windows xp 与 ubuntu 可以通过nfs共享文件夹
- 【android,12】12.handler 与message机制更改界面信息
- winform 只能输入数字(小数)
- 新手入门--输入格式四
- 【android,13】13.避免anr(application no response)的操作
- jquery遍历json数组方法
- FPGA 和 ASIC 开发的区别
- acm-1-n之间能够被m整除的数的和
- SQL EXISTS学习笔记
- 5、app启动流程、AppDelegate.m分析、xib介绍-OC+UI