代码例子:http://pan.baidu.com/share/link?shareid=4079574578&uk=3189484501
package com.example.threaddome;
import android.nfc.Tag;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity {
private static final String TAG = "MainThread";
private Handler mMianHandler ,mchildHandler;
private TextView info;
private Button msgBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
info = (TextView)findViewById(R.id.textView1);
msgBtn = (Button)findViewById(R.id.button1);
//主线程接受消息
mMianHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
info.setText((String)msg.obj);
Log.i("aa9999", "zzzzzzzzzzzzzzz77777777777");
}
};
//开启子线程
new ChildThread().start();
//通过Button的点击事件调用子线程
msgBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Message msgMessage = new Message();
msgMessage.obj = "fffffffffffffff";
mchildHandler.sendMessage(msgMessage);
}
});
}
class ChildThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
//初始化消息循环队列,需要在Handler创建前
Looper.prepare();
mchildHandler = new Handler()
{
public void handleMessage(Message msg) {
Log.i("aa", "zzzzzzzzzzzzzzz");
try {
Message message = new Message();
message.obj = (String)msg.obj+ "ffffffff";
mMianHandler.sendMessage(message);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
};
//启动子线程消息队列
Looper.loop();
}
}
}