用Handler的post()方法來傳遞執行緒中的程式碼段到主執行緒中執行
阿新 • • 發佈:2019-02-19
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();
}
}