zoukankan      html  css  js  c++  java
  • android中Handler中的obtainMessage()


    public final Message obtainMessage (int what, int arg1, int arg2, Object obj)
    这里面的4个参数求解释啊。。。

    byte[] buffer = new byte[1024];
    int bytes;
    bytes = mmInStream.read(buffer);
    mHandler.obtainMessage(MainActivity.MESSAGE_READ, bytes, -1, buffer) .sendToTarget();

    这个是实例的代码

    case MESSAGE_READ:

    byte[] readBuf = (byte[]) msg.obj;//这是把缓冲区给了readBuf吗?

    String ss = new String(readBuf, 0,msg.arg1);//这一句什么意思,貌似arg1存的就是读入的值



    --------------------------------------------------------------------------------------
    -就是你的Message传给Handler的值,

    Message msg = handler.obtainMessage();
    msg.arg1 = 1;
    msg.arg2 = 2;
    msg.what = 3;
    msg.obj = Object;

    在Handler中接收
    Handler handler = new Handler(){

    @Override
    public void handleMessage(Message msg) {
    super.handleMessage(msg);
    //接收Message发送的消息 msg.what msg.arg1 msg.arg2 msg.obj
    //这里msg.obj需要强转成你传过来的数据类型
    }

    };
    -------------------------------------------------------
    mHandler.obtainMessage(MainActivity.MESSAGE_READ, bytes, -1, buffer) .sendToTarget();
    -------------------------------------------------------
    new String(readBuf, 0,msg.arg1); String (byte[] data, int offset, int byteCount)
    msg.arg1充当了byteCount,也就是字符长度。msg.arg1不是就是在传消息之前的bytes的赋值吗,而bytes = mmInStream.read(buffer),也就是把单字符给了bytes






  • 相关阅读:
    https协议介绍
    最详尽的fidder抓取https请求
    最详尽的datagrip使用
    datagrip安装与破解
    二叉树
    使用nexus搭建maven私库
    markdown利器-小书匠
    java开发-flyway
    .NetCore 入门
    .Net Core 实体生成器
  • 原文地址:https://www.cnblogs.com/tonglingqijie/p/4786873.html
Copyright © 2011-2022 走看看