1. 程式人生 > >Message訊息佇列中多個數據傳遞(Bundle)

Message訊息佇列中多個數據傳遞(Bundle)

 MyHandler handler = new MyHandler(handlerThread.getLooper());
        Message msg = handler.obtainMessage();
        /**
         * 將Message物件傳送到目標物件
         * 所謂的目標物件,就是生成該msg物件的handler物件
         */
        //msg.obj = "Hello world";
        Bundle b = new Bundle();
        b.putInt("age", 22);
        b.putString(
"name", "loulijun"); msg.setData(b);

msg.sendToTarget();

public void handleMessage(Message msg)
    {
    //String str = (String)msg.obj
    Bundle b = msg.getData();
    int age = b.getInt("age");
    String name = b.getString("name");
    Toast toast = Toast.makeText(getApplicationContext(), "age="+age+"name="+name, Toast.LENGTH_LONG);
    toast.show();
    Log.d(
"System.out", "handler所線上程的id:"+Thread.currentThread().getId()); } } }

如果是msg.obj,那麼可以這樣用

msg.obj = "Welcome to china";

然後在handleMessage()方法中用

String str = (String)msg.obj;來獲得傳遞的值

如果使用getData()方法的話,需要用到Bundle物件來傳遞