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) { } } } }
我也是初学 自己写下来忘记的时候来看看 呵呵 有错误的地方请帮忙指出 谢谢!