Handling Lengthy Operations in Google's Android
Performing Lengthy Operations in Child Threads
You implement the child thread in the setRandomPointsInChildThread function. Basically, a new thread will be created and executed. Within the child thread, a function to emulate the lengthy operations is provided in setRandomPoints, which does nothing but generate a series of random points and delay the process by pausing 50 milliseconds between points. After all the points have been prepared, it will send a message within a unique ID, GUIUPDATEIDENTIFIER, defined by you. A deterministic progress dialog is initiated. The screen shot is illustrated in Figure 2.
void setRandomPoints(boolean modeThreaded) {
int delay_in_msecs = 50;
int npoints = 120;
int r = 0, g = 0, b = 0;
Random rand = new Random();
if (!modeThreaded)
mypd = ProgressDialog.show(TutorialOnANR.this,
"Lengthy Calculations",
"Please wait...",
false);
mypoint = null;
mypoint = new MyPoint[npoints];
for (int i = 0; i < npoints; i++) {
mypoint[i] = new MyPoint();
mypoint[i].x = rand.nextFloat() * 320;
mypoint[i].y = rand.nextFloat() * 240;
r = (int)(rand.nextFloat() * 155) + 100;
g = (int)(rand.nextFloat() * 155) + 100;
b = (int)(rand.nextFloat() * 155) + 100;
mypoint[i].c = 0xff000000 | (r << 16) | (g << 8) | b;
mypoint[i].sz = (int)(rand.nextFloat() * 10) + 3
// Update the progress dialog
mypd.setProgress(10000 * i / npoints);
// Emulate the lengthy operations with an intentional
// delay here
try {
Thread.sleep(delay_in_msecs);
} catch (InterruptedException e) {
}
}
// Dismiss the progress dialog
mypd.dismiss();
}
// Do lengthy operations in a child thread
private void setRandomPointsInChildThread() {
// Start a progress dialog here
mypd = ProgressDialog.show(TutorialOnANR.this,
"Lengthy Calculations",
"Please wait...",
false);
Thread t = new Thread() {
public void run() {
setRandomPoints(true);
// Send a message to the handler
Message message = new Message();
message.what = TutorialOnANR.GUIUPDATEIDENTIFIER;
TutorialOnANR.this.myGUIUpdateHandler.
sendMessage(message);
}
};
t.start();
}

Figure 2: Deterministic progress dialog
0 Comments (click to add your comment)
Networking Solutions



Solid state disks (SSDs) made a splash in consumer technology, and now the technology has its eyes on the enterprise storage market. Download this eBook to see what SSDs can do for your infrastructure and review the pros and cons of this potentially game-changing storage technology.