Message类当中有两个参数 arg1,arg2,是两个消耗比较小的参数。
public int arg1
Added in API level 1
arg1 and arg2 are lower-cost alternatives to using setData() if you only need to store a few integer values.
说明如果你要储存一些整形数据,用arg1,arg2的话消耗会比用setData() 小
还有一个参数obj 是用来储存String 字符串类型的
msg.obj = “abc”;
String a = (String)msg.obj;
以上都是msg传递简单数据的方法,如果我们需要传递大量的数据的话,我们就要使用msg的一个方法叫做setData()
public void setData (Bundle data)
Added in API level 1
Sets a Bundle of arbitrary data values. Use arg1 and arg1 members as a lower cost way to send a few simple integer values, if you can.
See Also
其中有参数Bundle 的一个数据
bundle 一批
arbitrary 任意的
Bundle b = new Bundle();
b.putInt("age",20);
b.putString("name","guoximing");
msg.setData(b);
//将msg发送到目标对象,所谓的目标对象,就是生成该msg对象的handler对象
msg.sendToTarget();
然后在Handle里面的handleMessage(Message msg)中会执行
Bundle b = msg.getData();
int age = b.getInt("age");
String name = b.getString("name");
System.out.println("age is "+age+"and name is"+name);
找到不执行handleMessage的原因了 因为写成了 handlerMessage了