博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓遇到蓝牙设备发送bug,使用lock加condition解决
阅读量:4178 次
发布时间:2019-05-26

本文共 1577 字,大约阅读时间需要 5 分钟。

 

private Lock lock = new ReentrantLock();    private Condition condition = lock.newCondition();
public void writeCharacteristic(UUID paramUUID, byte[] recvBuf, ActionCallback paramActionCallback)    {        try {            lock.lock();            writeCharacteristic(Profile.UUID_SERVICE_DRIVERMATE, paramUUID, recvBuf, paramActionCallback);            System.out.println("writeCharacteristic我在等一个新信号"+Thread.currentThread().getName());            condition.await(500, TimeUnit.MILLISECONDS);        } catch (Exception e){        } finally {            System.out.println("writeCharacteristic拿到一个信号"+Thread.currentThread().getName());            lock.unlock();        }    }
public void onCharacteristicWrite(BluetoothGatt paramBluetoothGatt, BluetoothGattCharacteristic paramBluetoothGattCharacteristic, int paramInt)    {        super.onCharacteristicWrite(paramBluetoothGatt, paramBluetoothGattCharacteristic, paramInt);        //Log.w(TAG, "onSuccess onCharacteristicWrite = " + ByteUtil.bytesToHexString(paramBluetoothGattCharacteristic.getValue()));        if (paramInt == 0) {            onSuccess(paramBluetoothGattCharacteristic);        }        else {            onFail(paramInt, "onCharacteristicWrite fail");        }        try {            lock.lock();            System.out.println("onCharacteristicWrite" + Thread.currentThread().getName());            condition.signal();            System.out.println("onCharacteristicWrite我发出了一个信号:"+Thread.currentThread().getName());        } catch (Exception e){        } finally {            lock.unlock();        }    }

 

转载地址:http://kzmai.baihongyu.com/

你可能感兴趣的文章
328. Odd Even Linked List(链表)
查看>>
617. Merge Two Binary Trees(Tree)
查看>>
700. Search in a Binary Search Tree(Tree)
查看>>
515. Find Largest Value in Each Tree Row(Tree)
查看>>
897. Increasing Order Search Tree(Tree)
查看>>
114. Flatten Binary Tree to Linked List(Tree)
查看>>
199. Binary Tree Right Side View(Tree)
查看>>
230. Kth Smallest Element in a BST(Tree)
查看>>
TreeMap源码解析
查看>>
求字符串的最长回文串-----Manacher's Algorithm 马拉车算法
查看>>
MYSQL的索引
查看>>
回溯法常用的解题模板和常见题型
查看>>
深入分析Java I/O 的工作机制
查看>>
动态规划的套路----左神
查看>>
KMP算法简解
查看>>
左神算法课进阶版总结
查看>>
左神算法基础班总结
查看>>
Linux性能优化
查看>>
进程间的通信---UNIX高级环境编程
查看>>
Linux三剑客--grep、sed、awk
查看>>