Я реализовал этот код для получения данных через пакеты udp, но я могу прочитать только первый пакет (метод Thread run () запускается один раз).Я реализую поток и обработчик.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textViewState = (TextView)findViewById(R.id.state);
new Thread() {
@Override
public void run() {
byte[] buffer = new byte[100];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
DatagramSocket datagramSocket = null;
try {
datagramSocket = new DatagramSocket(3333);
} catch (SocketException e) {
e.printStackTrace();
}
try {
datagramSocket.receive(packet);
mHandler.obtainMessage(2, 10, -1, buffer)
.sendToTarget(); // Send the obtained bytes to the UI activity
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 2) {
byte[] readRpmBuf = (byte[]) msg.obj;
String val="";
for (int i=0;i<100;i++){
val+=String.valueOf(readRpmBuf[i])+"-";
}
textViewState.setText(val);
}
}
};
}