如何搭建自己得网站,树状wordpress主题,专业手机网站制作哪家好,西宁网络推广公司通过分析Activity源码#xff0c;我们知道每个Activity都有一个Looper#xff0c;所以主线程在接收Message是不需要调用Looper.prepare()和Looper.loop()#xff0c;但是线程是不带Looper的#xff0c;当线程要接收来自主线程的消息是就需要调用Looper.prepare()和Looper.l…通过分析Activity源码我们知道每个Activity都有一个Looper所以主线程在接收Message是不需要调用Looper.prepare()和Looper.loop()但是线程是不带Looper的当线程要接收来自主线程的消息是就需要调用Looper.prepare()和Looper.loop()。以下我们将通过一个示例讲述主线程和线程之间如何发送Message。import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.Toast;/*** 这个类是主线程它每隔两秒就发送一个Message给线程线程收到Message后将发送一个Message给主线程主线程收到Message后会将Message内容Toast出来。* org.fneg.HandlerTestActivity.java* Create at: 2012-6-4 下午9:39:19* author:feng* Email:fengcunhangmail.com**/public class HandlerTestActivity extends Activity {private Handler uiHandler;private ThreadWithLooper thread;private Runnable showRunable;Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);uiHandlernew Handler(){Overridepublic void handleMessage(Message msg) {switch(msg.what){case Messages.MSG_HELLO:Toast.makeText(HandlerTestActivity.this, (String)msg.obj, Toast.LENGTH_SHORT).show();break;}}};threadnew ThreadWithLooper(uiHandler);thread.start();showRunablenew Runnable() {Overridepublic void run() {//給线程发送一个Messagethread.getHandler().sendEmptyMessage(Messages.MSG_HELLO);uiHandler.postDelayed(this, 2*1000);}};uiHandler.post(showRunable);}Overrideprotected void onStop() {super.onStop();uiHandler.removeCallbacks(showRunable);}}import android.os.Handler;import android.os.Looper;import android.os.Message;/*** 从线程发送消息到UI线程(主线程)* org.fneg.ThreadWithLooper.java* Create at: 2012-6-4 下午4:58:11* author:feng* Email:fengcunhangmail.com**/public class ThreadWithLooper extends Thread {private Handler handler;private Handler uiHandler;public ThreadWithLooper(Handler mHandler){this.uiHandlermHandler;//初始化Handler接收到主线程发送过来的Message就回复一个Message给主线程消息内容是 一个字符串和当前时间handler new Handler(){Overridepublic void handleMessage(Message msg) {switch(msg.what){case Messages.MSG_HELLO:Message messagenew Message();message.whatMessages.MSG_HELLO;message.objYes!I get a helloSystem.currentTimeMillis();uiHandler.sendMessage(message);break;}}};}public Handler getHandler() {return handler;}public void setHandler(Handler handler) {this.handler handler;}Overridepublic void run() {Looper.prepare();Looper.loop();}}/**** org.fneg.Messages.java* Create at: 2012-6-4 下午4:51:20* author:feng* Email:fengcunhangmail.com**/public class Messages {public static final int MSG_HELLO0X1;}