Escriba el título del directorio aquí
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: Handler
hay dos formas de enviar mensajes, a saber Handler.obtainMessage()
y Handler.sendMessage()
, entre ellas, obtainMessage
cuando la cantidad de datos en el camino es demasiado grande, porque MessageQuene
el tamaño también es limitado, por lo que cuando message
el 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 Message
objeto, almacene los datos leídos en Message
y luego mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
reemplácelo mHandler.sendMessage()
.