版权声明:文章内容系为本人原创,如需转载,请注明出处。 https://blog.csdn.net/weixin_43778720/article/details/88072118
- 什么是Message:
Message是封装了需要传递的数据交由Handler 处理的对象。 - Message的作用:
- 用于存放传递的数据;
- 是主线程和子线程传递数据的载体
- 如何使用Message:
- 初始化Message对象:
- Message message= new Message();
- Message message= Message.obtain();
- Messager message= handler.obtaionMessager();
- 向Message中添加数据:
Message message = Message.obtain(); //TODO 将传递数据,封装到Message消息对象中 message.what = 0; message.arg1 = 1; message.arg2 = 2; message.obj = “传递的内容”; Bundle bundle = new Bundle(); bundle.putString("name","张三"); message.setData(bundle);
- 获取Message中存储的数据
private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int flag1 = msg.what; int flag2 = msg.arg1; int flag3 = msg.arg2; String resultMsg = (String) msg.obj; Bundle bundle = msg.getData(); String name = bundle.getString("name"); } };
- 初始化Message对象:
- Send 方式 -【注意事项】
- 子线程向主线程中发送空消息时,可以调用方法直接传入what值,并且放入到消息队列中;
- Send方式发送消息,需要创建Message对象,封装传递的数据,将Message对象压入消息队列中;
- Send方式发送消息后,需要在Handler的 handleMessage(Message)方法中,获取消息并处理;
- Send方式定时发送消息和延迟发送消息, 时间的单位是毫秒。