这个代码中学了在handler中传递数据可以用多种形式,这次用Bundle来实现。
Code package tk.handertest; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("Activity-->"+Thread.currentThread().getId()); //生成一个handlerThread对象,实现使用Looper来处理消息队列的功能 HandlerThread handlerThread=new HandlerThread("handlerThread"); //在使用HandlerThread的getLooper()方法之前,必须调用start方法。 handlerThread.start(); MyHandler myhandler = new MyHandler(handlerThread.getLooper()); Message msg=myhandler.obtainMessage(); msg.obj="abc"; Bundle b=new Bundle(); b.putInt("age", 20); b.putString("name", "Jhon"); msg.setData(b); //将msg发送到目标对象,所谓的目标对象,就是生成该msg对象的handler对象 msg.sendToTarget();//会调用hanglemessage方法 } class MyHandler extends Handler{ public MyHandler(){ } public MyHandler(Looper looper){ super(looper); } @Override public void handleMessage(Message msg){ String string=(String)msg.obj; Bundle b=msg.getData(); int age=b.getInt("age"); String name=b.getString("name"); System.out.println("age is "+age); System.out.println("name is "+name); System.out.println("muhandler-->"+Thread.currentThread().getId()); System.out.println("handlerMessage"); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }