//在主線程建立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(); } } }