标签:bsp 修改 继承 学习笔记 控件 alt android string class
可用于解决上一则笔记所提到的WorkerThread无法修改UI控件的问题
Handler把消息对象放到MessageQueue当中,而Looper负责在消息队列头部不断取出消息对象。取出的对象再交给Handler处理。
-先创建一个继承Handler的类,注意是导入Android.os.Handler(非常重要)
class firstHandler extends Handler{}
-复写方法handleMessage(Message msg)
-创建Handler对象
handler = firstHandler()
-生成一个Message,并且给what成员变量赋值
Message msg = handler.obtainMessage();
msg.what = 2;
-将消息对象放置到消息队列中。
handler.sendMessage(msg);
-Looper将会从消息队列当中将消息对象取出;
-Looper将会找到与消息对象对应的Handler对接(每一个Message对象都有与之对应的Handler对象);
-Looper将会调用Handler对象的handleMessage(Message msg)方法,用于处理消息对象。
注:不管是在WorkerThread还是在MainThread中都可以发送消息,即:handler.sendMessage(Message msg)
1)在新建线程的run()中发送Message:
class NetworkThread extends Thread{ @Override public void run(){ String s = "模拟从网络中获取的数据"; Message msg = handler.obtainMessage(); msg.obj = s; handler.sendMessage(msg); } }
2)复写handleMessage()方法。因为这个方法是被主线程调用的,所可以更改UI。
class MyHandler extends Handler{ @Override public void handleMessage(Message msg){ tring s = (String)msg.obj; textView.setText(s); } }
标签:bsp 修改 继承 学习笔记 控件 alt android string class
原文地址:http://www.cnblogs.com/viaduct/p/6388010.html