1. 程式人生 > >用Handler的post()方法來傳遞執行緒中的程式碼段到主執行緒中執行

用Handler的post()方法來傳遞執行緒中的程式碼段到主執行緒中執行

package com.kale.handler;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;

/**
 * @author:Jack Tony
 * @tips  :將自己執行緒中的程式碼段傳遞到主執行緒中執行,用post方法就可以把runnable中的程式碼進行傳遞了。
 * @date  :2014-7-31
 */
public class MainActivity
extends Activity {
TextView valueTv; public Handler mHandler; private MyThread thread; // 定義一個自己的執行緒 class MyThread extends Thread { @Override public void run() { System.out.println("執行緒開始執行"); Runnable r = new Runnable() { @Override public void run() { valueTv.setTextColor(Color.RED); valueTv.setTextSize(
30); valueTv.setText("從執行緒中傳過來的程式碼段"); System.out.println("執行runnable程式碼的執行緒:"+Thread.currentThread().getName()); } }; //上面程式碼中的runnable執行緒體經過post後會直接傳送到主執行緒中執行修改字型的操作。//post直接可以把一段程式碼當做變數一樣傳遞,但是請不要傳送耗時操作的程式碼到主執行緒中 mHandler.post(r); } } @Override protected void onCreate(Bundle savedInstanceState) { super
.onCreate(savedInstanceState); setContentView(R.layout.activity_main); valueTv = (TextView)findViewById(R.id.vale_textView); mHandler = new Handler(); thread = new MyThread(); // 啟動執行緒 thread.start(); } }