private static final int WHAT_BT_ACCEPT_OK = 3; Handler handler = new Handler(Looper.myLooper()){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case WHAT_BT_ACCEPT_OK: BluetoothSocket socket = (BluetoothSocket) msg.obj; if(onAcceptListener != null) onAcceptListener.onAccepted(socket); break; } } };
时间: 2024-02-14 21:24:17 浏览: 183
AsyncTask陷阱之:Handler,Looper与MessageQueue的详解
这段代码定义了一个 `Handler` 对象 `handler`,用于处理蓝牙通信过程中的消息。在构造函数中,通过 `Looper.myLooper()` 获取当前线程的消息队列,并将其作为参数传入,以创建一个与当前线程关联的 `Handler` 对象。在 `handleMessage()` 方法中,根据传入的消息类型 `msg.what` 进行不同的处理。如果消息类型是 `WHAT_BT_ACCEPT_OK`,则将消息中的 `obj` 强制转换为 `BluetoothSocket` 对象,并调用 `onAcceptListener` 的 `onAccepted()` 方法,将该 `BluetoothSocket` 对象作为参数传递给它。其中,`onAcceptListener` 是一个自定义的接口,用于处理蓝牙通信的连接请求。
阅读全文