Message訊息佇列中多個數據傳遞(Bundle)
阿新 • • 發佈:2019-01-25
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物件來傳遞