buhuiming / BleCore

Android蓝牙低功耗(BLE)快速开发框架
172 stars 32 forks source link

数据频繁交互时出现卡死 #17

Closed vistar1986 closed 10 months ago

vistar1986 commented 11 months ago

作者你好: 在使用过程中,实现一秒查询一次数据,返回数据量2000个字节左右,如果长时间进行数据交互会偶发性出现蓝牙Notifiy无法收到数据的情况,但是发送数据时没有问题的,当这个时候断开蓝牙连接会出现ANR报错。

buhuiming commented 11 months ago

在问题排查之前,请确保更新最新版本,确保onCharacteristicChanged方法在处理数据时所属线程,请提供版本号、运行环境、代码示例,否则无法更好的定位。

vistar1986 commented 10 months ago

版本:1.6.2 手机:华为NOVA6 复现:页面中有一个开关按钮,点击一次会发送一次蓝牙写入请求,当页面不做任何限制时,频繁点击该按钮发送数据会发生卡死现象 以下为蓝牙发送代码片段: image 以下为页面截图: image

vistar1986 commented 10 months ago

以下为卡死时的日志记录 image

wuxinxi commented 10 months ago

频繁的数据交互还是用bluetoothSocket吧

buhuiming commented 8 months ago

初步诊断为Synchronized和Collections.synchronizedList资源竞争死锁问题导致ANR,已优化,请更新最新版本