记录bug1

项目场景:

提示:这里简述项目相关背景:

例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)


问题描述

提示:这里描述项目中遇到的问题:

例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据

APP 中接收数据代码:

c 复制代码
@Override
	public void run() {
		bytes = mmInStream.read(buffer);
		mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
	}

原因分析:

提示:这里填写问题的分析:

例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。


解决方案:

提示:这里填写该问题的具体解决方案:

例如:新建一个 Message 对象,并将读取到的数据存入 Message,然后 mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();换成 mHandler.sendMessage()

相关推荐
城东米粉儿1 小时前
Android Glide 笔记
android
城东米粉儿2 小时前
Android TheRouter 笔记
android
城东米粉儿8 小时前
Android AIDL 笔记
android
城东米粉儿8 小时前
Android 进程间传递大数据 笔记
android
城东米粉儿8 小时前
Android KMP 笔记
android
冬奇Lab10 小时前
WMS核心机制:窗口管理与层级控制深度解析
android·源码阅读
松仔log10 小时前
JetPack——Paging
android·rxjava
城东米粉儿11 小时前
Android Kotlin DSL 笔记
android
城东米粉儿11 小时前
Android Gradle 笔记
android