public class MainActivity extends Activity {
EditText edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit=(EditText) findViewById(R.id.editText);
MyThread mThread=new MyThread(new MyHandler());//将MyHandler的引用传给处理线程。
Thread t1=new Thread(mThread);
t1.start();
}
class MyHandler extends Handler{
@Override
//当处理线程中的MyHandler的引用调用sendMessage()将消息传
//入UI线程中looper对象的中的消息队列后,
//loop()方法处理该消息时,会调用handleMessage(Messagemsg)方法。
public void handleMessage(Message msg) {
super.handleMessage(msg);
String result=msg.getData().getString("message");
edit.setText(result);
}
}
class MyThread implements Runnable{
MyHandler mHandler;
//获得UI线程Handler对象的引用
public MyThread(MyHandler myHandler) {
this.mHandler=myHandler;
}
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Message msg = prepareMessage("消息机制");
//将消息传入UI线程的消息队列中
mHandler.sendMessage(msg);
}
private Message prepareMessage(String str){
Message result=Message.obtain();
Bundle bundle=new Bundle();
bundle.putString("message", str);
result.setData(bundle);
return result;
}
}
}
个人浅薄认识,如有错误,请指正。主要参考自http://www.cnblogs.com/codingmyworld/archive/2011/09/14/2174255.html