08 midlet basic
DESCRIPTION
TRANSCRIPT
MIDlet Basic
Cornelius Koo – [email protected]
MIDlet
• MIDlet is an application that is built upon
the MIDlet class.
• MIDlet can communicate with Application
Manager in two-way direction.
Example: Application Manager can pause a MIDlet, while MIDlet
can make a request to be paused by Application Manager.
MIDlet Lifecycle
Pause
• Paused: A MIDlet is placed in the paused
state after the constructor has been called,
but prior to being started by the application
manager. Once the MIDlet had been
started, it may alternate between the
Paused and Active states many times
during its lifecycle.
Active
• Active: The MIDlet is running.
Destroyed
• Destroyed: The MIDlet has released any
resources it required, and has been shut
down by the application manager.
import javax.microedition.midlet.MIDlet;
public class HelloWorld extends MIDlet {
public HelloWorld() {}
protected void startApp() throws
MIDletStateChangeException {}
protected void pauseApp() {}
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {}
}
startApp()
protected void startApp() throws
MIDletStateChangeException {}
Called by application manager to start
the MIDlet.
pauseApp()
protected void pauseApp()
{}
Called by application manager before
pausing the MIDlet.
destroyApp()
protected void
destroyApp(boolean arg0) throws
MIDletStateChangeException {}
Called by application manager to prior to
shutdown.
javax.microedition.midlet.MIDlet
Warning !
• Don’t leave the code that persist through
MIDlet lifecycle or code that runs just once
time in the startApp() method because it’ll
be invoked by application manager many
times.
Warning !
• When paused or destroyed, MIDlet should
release as many resources as possible.
notifyDestroyed()
• MIDlet signals application manager that it’ll
be shutted down.
• Sequence :
- User request to exit
- destroyApp() – releasing resources
- notifyDestroyed() – tell app. manager it’s
safe to shutdown the MIDlet.
getAppProperty()
• When needed to query MIDlet attributes,
use getAppProperty().
Monitoring MIDlet
Transition
import javax.microedition.midlet.MIDlet;
public class StateTransition extends MIDlet {
public StateTransition() {
System.out.println(“constructor”);
}
protected void startApp() throws
MIDletStateChangeException {
System.out.println(“start”);
}
protected void pauseApp() {
System.out.println(“pause”);
}
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {
System.out.println(“destroy”);
}
}
MIDletStateChangeException
Thrown when error occur on state changes
Example MIDlet : TestException.java
Reference
• Core J2ME Technology and MIDP. John
W. Muchow. Prentice Hall PTR, 2002.
• Enterprise J2ME: Developing Mobile
Java Applications. Michael Juntao Yuan.
Prentice Hall PTR, 2003.
• J2ME in A Nutshell. Kim Topley. Oreilly,
2002.