plantilla de investigación de errores

Escenario del proyecto:

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

Por ejemplo: Escenario del proyecto: Ejemplo: comunicarse con la aplicación del teléfono móvil a través del chip Bluetooth (HC-05) y transmitir un lote de datos del sensor cada 5 s (no muy grande)


Descripción del problema

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

Por ejemplo: los datos se pierden de vez en cuando durante la transmisión de datos, y ocasionalmente se pierde una parte de los datos.El
código para recibir datos en la aplicación:

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

Análisis de causa:

Sugerencia: Complete el análisis de la pregunta aquí:

Por ejemplo: Handlerhay dos formas de enviar mensajes, a saber Handler.obtainMessage()y Handler.sendMessage(), entre ellas, obtainMessagecuando la cantidad de datos en el camino es demasiado grande, porque MessageQueneel tamaño también es limitado, por lo que cuando messageel procesamiento no es oportuno, los primeros datos transmitidos serán se sobrescribirá, lo que provocará la pérdida de datos.


solución:

Consejo: Complete la solución específica al problema aquí:

Por ejemplo: cree un nuevo Messageobjeto, almacene los datos leídos en Messagey luego mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();reemplácelo mHandler.sendMessage().

Supongo que te gusta

Origin blog.csdn.net/lzq2357639195/article/details/127502627
Recomendado
Clasificación