我有一个应用程序,我从服务器接收信息,然后在屏幕上为用户显示该信息。由于有很多信息,我想在收到信息时更新用户界面。
发送/接收是在一个单独的线程上完成的。
两个问题:
如何才能最好地接收多个UDP数据包? 我目前接收一个数据包的代码
try {
Log.i(TAG,"Listening...");
_dcOut.setSoTimeout(20000);
_dcOut.receive(packet);/* Wait to receive a datagram */
haveDatagram = true;
Log.d(TAG,"dc_out, received...");
}
catch (Exception e) { // can be just a time out
haveDatagram = false;
Log.d(TAG,"dc_out, failed to receive...");
}
是否可以在接收多个UDP数据包时更新UI?
编辑: 我正在使用绑定服务从服务器获取信息(AIDL是特定的)。这是设置:
要么我: 1.获取一个单独的对象并将其发回,这就是该服务的特定实例或 2.我可以发回该服务的列表
我的想法是,我应该发回5-10个对象的列表,并重复一段时间?
- 我觉得在接收使用此服务设置的数据包时,我无法更新UI -
答案 0 :(得分:1)
如果UDP分组的接收是在一个单独的线程上完成的,那么在GUI上显示它应该没有问题!
您的代码仅显示接收UDP数据。我需要更具体的信息:)
只有一个UDPSocket处理特定端口上的传入数据,它们将所有(数据包)按顺序存储在专用于该特定进程的缓冲区中。