//在主线程创建Handler,实现UI的更新,以下是一个例子public class MainActivity extends Activity { private TextView text_show; // 在主线程中创建消息Handler // 主线程创建方式 Handler handler = new Handler() { // 要重写里面的方法 public void handleMessage(android.os.Message msg) { // 跟新UI,设置textview if (msg.what == 1) { text_show.setText((String) msg.obj); } }; };// 注意这里要分号 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text_show = (TextView) this.findViewById(R.id.text_show); } public void sendMessage(View view) { // 耗时工作在子线程,然后向主线程传递数据 new Thread(new Runnable() { @Override public void run() { // Message对象可以通过new出来,但不建议,通常使用 Message.obtain() 或 // Handler.obtainMessage() 方法来从消息池中获得空消息对象,以节省资源; Message message = Message.obtain(); message.what = 1; message.obj = "这是子线程,请接收"; // 封装完数据发送给主线程 handler.sendMessage(message); } }).start(); }}//在子线程运用的例子public class SecondActivity extends Activity { private TextView text_show; // 在子线程中创建消息Handler // 子线程创建方式 private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text_show = (TextView) this.findViewById(R.id.text_show); new Mythread().start(); } public void sendMessage(View view) { Message message = Message.obtain(); message.what = 1; message.obj = "这是主线程在发送,请接收"; // 封装完数据发送给子线程 handler.sendMessage(message); } // Handler在子线程张处理消息 class Mythread extends Thread { @Override public void run() { // 1.创建looper Looper.prepare(); handler = new Handler() { // 要重写里面的方法 @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: Log.i("MainActivity", (String) msg.obj); break; } } };// 注意这里要分号 // 3.循环读取MessageQueue Looper.loop(); } }}