求安卓大神,android中Handler中的obtainMessage()
答案:2 悬赏:70 手机版
解决时间 2021-11-29 00:53
- 提问者网友:心牵心
- 2021-11-28 21:51
求安卓大神,android中Handler中的obtainMessage()
最佳答案
- 五星知识达人网友:低音帝王
- 2021-11-28 22:18
就是你的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();
这句话里面应该是把buffer给了msg.obj了吧追答是的,byte[] readBuf = (byte[]) msg.obj;//这是把缓冲区给了readBuf吗?你看这句里收到msg.obj之后强转成byte[]赋值的追问new String(readBuf, 0,msg.arg1); String (byte[] data, int offset, int byteCount)
msg.arg1充当了byteCount,也就是字符长度。msg.arg1不是就是在传消息之前的bytes的赋值吗,而bytes = mmInStream.read(buffer),也就是把单字符给了bytes,这个怎么成了字符长度了呢?
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();
这句话里面应该是把buffer给了msg.obj了吧追答是的,byte[] readBuf = (byte[]) msg.obj;//这是把缓冲区给了readBuf吗?你看这句里收到msg.obj之后强转成byte[]赋值的追问new String(readBuf, 0,msg.arg1); String (byte[] data, int offset, int byteCount)
msg.arg1充当了byteCount,也就是字符长度。msg.arg1不是就是在传消息之前的bytes的赋值吗,而bytes = mmInStream.read(buffer),也就是把单字符给了bytes,这个怎么成了字符长度了呢?
全部回答
- 1楼网友:拜訪者
- 2021-11-28 23:23
就是把四个参数全部传递给ss啊追问不懂啊 新手 求详细指导啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯