If you are performing that code in the MIDlet's main event thread (for instance in commandAction, startApp, keyPressed, etc.) then you are blocking the same thread that is in charge of updating the display. So the thread that updates the screen is only freed after you have performed the long operation.
You need to perform the long operation in a separate thread.
By the look of your code, since remoteDetails has a run() method, I'm guessing that it implements the Runnable interface. In that case you have to change the code to:
Code:
Thread t = new Thread(remoteDetails);
t.start();
shmoove