Escena del proyecto:
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 segundos (no muy grande)
Descripción del problema:
Ejemplo: Durante la transmisión de datos, los datos pueden perderse de vez en cuando y parte de los datos pueden perderse ocasionalmente
. El código de datos de recepción en la
APLICACIÓN : @Override
public void run () { bytes = mmInStream.read (buffer); mHandler.obtainMessage (READ_DATA, bytes, - 1, búfer) .sendToTarget (); }
Análisis de causa:
Ejemplo: hay dos formas para que Handler envíe mensajes, a saber, Handler.obtainMessage () y Handler.sendMessage (). Cuando la cantidad de datos es demasiado grande en el método getsMessage, el tamaño de MessageQuene también es limitado, por lo que cuando el mensaje no se procesa a tiempo, causará Los datos transmitidos primero se sobrescriben, lo que resulta en la pérdida de datos.
solución:
Ejemplo: cree un nuevo objeto Message y guarde los datos leídos en Message, luego mHandler.obtainMessage (READ_DATA, bytes, -1, buffer) .sendToTarget (); reemplácelo con mHandler.sendMessage ().