一、Bundle数据
1.建立
Bundle B= new Bundle();
2.放入数据
B.put各种数据类型(标签,数据值)
例:
放入String数据
B.putString("BtRxData",BlutoothRxData)
放入char[]数据
B.putCharArray("BtRxData",BlutoothRxData[])
3.提取数据
不动脑子的办法就是
(要转化的类型)B.get(标签)
例:
String str = (String) b.get("BtRxData");
二、Message数据
1.建立
Message msg = new Message();
2.Message有很多参量可用
msg.what;msg.arg1;msg.arg2等等,如果只是传送简单数据,用这些就够了
3.放入Bundle数据(好像只能放入一个Bundle数据)
msg.setData(B);
4.发送Message数据(在Thread中发送
例:
向ThreadHandler发送Message:
ThreadHandler.sendMessage(msg);
5.收取Message数据
在建立的Handler里用
public void handleMessage(Message msg) {}
方法(函数)来接受处理Message
6.从Message中提取Bundle数据
msg.getData();
例:
Bundle B=msg.getData();
7.以下范例只简单演示了“Bundle数据通过Message方式传送”,并不包含Message内各参量(what,arg1等)的处理
//---------- 范例----------------
public class CzBluetoothLibrary {
//--------Handler 区
Handler Handler_ThreadMessageProcess = new Handler() {
public void handleMessage(Message Msg) {//此入口处理Msg
//从Msg里提取Bundle数据
Bundle B=Msg.getData();
//从Bundle数据中提取带"BtRxData"标志的数据
//并转换成String赋给str
String str = (String) B.get("BtRxData");
//在主界面tv_ProgramStatus框里显示str
CzHomeControl.tv_ProgramStatus.append(str);
}
}
//----------Thread 区
class Thread_BluetoothConnect1 extends Thread {
public void run() {
Bundle B =new Bundle();
String str="TestString";
B.putString("BtRxData",str);
Message msg = new Message();
Msg.setData(B);
Handler_ThreadMessageProcess.sendMessage(Msg);
}
}