Question

I have an application where I am receiving information from a server and then showing that information on the screen for the user. Since there is a lot of information, I would like to update the UI as I receive the information.

Sending/Receiving is done on a separate thread.

Two questions:

  1. How can I best receive multiple UDP packets? My current code for receiving one packet

    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...");
     }
    
  2. Is it possible to update UI while receiving multiple UDP packets?

Edit: I am using a bound service to get the information from the server(AIDL to be specific). Here is the setup:

Either I: 1. get an individual object and send it back and that's that for that particular instance of the service or 2. I can send back a List of them for that service

My idea is that I should send back a list of say, 5-10 objects, and repeat that for a while?

--I feel like there isn't a way for me to be updating the UI while receiving the packets with this service setup--

Était-ce utile?

La solution

If the receiving of UDP packets are done on a seperate thread, there should be no problems showing it on your GUI!

Your code shows only receving UDP data. I need more info to be specific :)

Only one UDPSocket handles incoming data on a specific port, they will all (packets) be stored sequentially in a buffer, dedicated to that specific process.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top