package com.handlerThread; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; public class handlerThread2 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //System.out.println("activity線程ID:"+Thread.currentThread().getId()); HandlerThread handlerThread = new HandlerThread("handlerThread"); handlerThread.start(); MyHandler handler = new MyHandler(handlerThread.getLooper()); Message msg = handler.obtainMessage(); //msg.arg1 = 123;//傳遞整型數據 //msg.obj = "asd";傳遞object類型 //利用bundle對象來傳值 Bundle b = new Bundle(); b.putInt("ID", 12); b.putString("name", "thinkpad"); msg.setData(b); msg.sendToTarget(); } class MyHandler extends Handler { public MyHandler() { super(); } public MyHandler(Looper looper) { super(looper); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); //int args = msg.arg1; //String s = (String)msg.obj; //獲取bundle對象的值 Bundle b = msg.getData(); int id = b.getInt("ID"); String name = b.getString("name"); System.out.println("id is "+id+", name is "+name); //System.out.println("handler線程ID:"+Thread.currentThread().getId()); } } }
運行結果
那麼,bundle具體是個什麼東西呢,我們來看一下官方的解釋