public class HandlethreadtestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HandlerThread myhandlethread=new HandlerThread("my_handler1");// 1.创建一个handlerthread 线程对象 my_handler 是这个线程对象的名称
myhandlethread.start();//2. 启动线程
MyHandle myhandle=new MyHandle(myhandlethread.getLooper());//4.绑定到创建的线程上
Message msg=myhandle.obtainMessage();//5. 获取到msg对象
Bundle b=new Bundle();
b.putInt("age", 12);
b.putString("name", "super_cj");
msg.setData(b); //在msg对象上绑定数据
msg.sendToTarget(); //把msg发送到绑定的线程上
}
class MyHandle extends Handler //3. 创建一个handler的内部类
{
public MyHandle()
{
}
public MyHandle(Looper looper)//重载myhandle 让父类Handler 把myhandlerthread 加入到线程队列
{
super(looper);
}
@Override
public void handleMessage(Message msg) {//在线程里要做的事 就是你想异步处理的代码
// TODO Auto-generated method stub
super.handleMessage(msg);
Bundle bb=msg.getData();//获得msg 传过来的数据
int age=bb.getInt("age");
String name=bb.getString("name");
Toast.makeText(HandlethreadtestActivity.this, String.valueOf(age), Toast.LENGTH_LONG).show();
try
{
Thread.sleep(5000);//暂停线程5秒
Toast.makeText(HandlethreadtestActivity.this, name, Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
}
}
}
}
我也是初学 自己写下来忘记的时候来看看 呵呵 有错误的地方请帮忙指出 谢谢!