![](/images/new-backgrounds/1119971/119971175x1.webp)
TC65 JAVA User's Guide
Strictly confidential / Released
s
12.2Programming the MIDlet
The life cycle and structure of MIDlets are described in Chapter 6. Since the MIDlets will run on J2ME™, all of J2ME™’s features, including threads, are available. Small applications, such as those without any timer functions or those used only for tests and simple examples, can be written without using threads. Longer applications should be implemented with threads.
12.2.1Threads
Although small applications can be written without using threads longer applications should use them. The Java programming language is naturally
For example, threads can be launched in startApp() and destroyed in destroyApp(). Note that destroying Java threads can be tricky. It is recommended that the developer read the Java documentation on threads. It may be necessary to poll a variable within the thread to see if it is still alive.
12.2.2Example
/* This example derives a class from Thread and creates two instances
*of the subclass. One thread instance finishes itself, the other one
*is stopped by the main application. */
package example.threaddemo;
import javax.microedition.midlet.*;
public class | ThreadDemo extends | MIDlet { |
| |
/* Member variables */ | // Flag for stopping | threads | ||
boolean | runThreads = true; | |||
DemoThread | thread1; | // | First instance of | DemoThread |
DemoThread | thread2; | // | Second instance of DemoThread |
/* Private class implementing the thread to be started by the * main application */
private class DemoThread extends Thread { int loops;
public DemoThread(int waitTime) {
/* Store number of loops to execute */ loops = waitTime; System.out.println("Thread(" + loops + "): Created");
}
public void run() { System.out.println("Thread(" + loops + "): Started"); for (int i = 1; i <= loops; i++) {
/* Check if main application asked thread to die */ if (runThreads != true) {
System.out.println("Thread(" + loops + "): Stopped from outside"); /* Leave thread */
return;
}
/* Print loop counter and wait 1 second,
*do something useful here instead */ System.out.println("Thread(" + loops + "): Loop " + i);
TC65 JAVA User's Guide_V05 | Page 88 of 90 | 26.09.2005 |