arg1和arg2是成本较低的替代品使用 setData()
,如果你只需要存储一些整数值。
任意对象发送给收件人。
what是用户定义的消息代码,以便收件人能识别这条消息是关于什么的。
方法一:
使用构造器public Message();
使用构造器public static Message obtain();
Message msg = Message.obtain();
msg.what=1;
msg.arg1=2;
msg.arg2=3;
msg.obj=4;
handler.sendMessage(msg);
方法三:
使用构造器public static Message obtain(Handler handler);
msg.what=1;
msg.arg1=2;
msg.arg2=3;
msg.obj=4;
msg.sendToTarget();
方法四:
使用构造器public static Message obtain(Handler handler, int what);
Message msg = Message.obtain(handler, 1);
msg.arg1=2;
msg.arg2=3;
msg.obj=4;
msg.sendToTarget();
方法五:
使用构造器使用构造器public static Message obtain(Handler handler, int what , Object obj);
Message msg = Message.obtain(handler, 1, 4);
msg.arg1=2;
msg.arg2=3;
msg.sendToTarget();
方法六:
使用构造器public static Message obtain(Handler handler, int what, int arg1 , int arg2);
Message msg = Message.obtain(handler, 1, 2 , 3);
msg.obj=4;
msg.sendToTarget();
方法七:
使用构造器public static Message obtain(Handler handler, int what, int arg1 , int arg2, Object obj);
Message msg = Message.obtain(handler, 1, 2 , 3, 4);
msg.sendToTarget();
方法八:
使用构造器public static Message obtain(Handler handler, int what, int arg1 , int arg2, Object obj);
Message msg = Message.obtain(handler, 1, 2 , 3, 4);
Bundle bundle = new Bundle();
List<integer> list = new ArrayList<integer>();
list.add(5);
list.add(6);
list.add(7);
bundle.putIntegerArrayList("num",ArrayList<integer>list);
msg.setData(bundle);
msg.sendToTarget();