/*--------------------------------------------------
* TestException.java
*
* Example from the book: Core J2ME Technology
* Copyright John W. Muchow http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class TestException extends MIDlet implements CommandListener
{
private Display display; // Reference to Display object for this MIDlet
private Form fmMain; // A Form
private Command cmExit; // A Command to exit the MIDlet
private boolean safeToExit = false; // Is it safe to exit the MIDlet?
// MIDlet constructor
public TestException()
{
display = Display.getDisplay(this);
cmExit = new Command("Exit", Command.SCREEN, 1);
fmMain = new Form("Test Exception");
fmMain.addCommand(cmExit);
fmMain.setCommandListener(this);
}
// Called by application manager to start the MIDlet.
public void startApp()
{
display.setCurrent(fmMain);
}
// We are about to be placed in the Paused state
public void pauseApp()
{
}
// We are about to enter the Destroyed state
public void destroyApp(boolean unconditional) throws MIDletStateChangeException
{
System.out.println("Inside destroyApp()");
// If we do not need to unconditionally exit
if (unconditional == false)
{
System.out.println("Requesting not to be shutdown");
throw new MIDletStateChangeException("Please don't shut me down.");
}
}
// Check to see if the Exit command was selected
public void commandAction(Command c, Displayable s)
{
if (c == cmExit)
{
try
{
// Is it ok to exit?
if (safeToExit == false)
destroyApp(false);
else
{
destroyApp(true);
notifyDestroyed();
}
}
catch (MIDletStateChangeException excep)
{
safeToExit = true; // Next time, let's exit
System.out.println(excep.getMessage());
System.out.println("Resuming the Active state");
}
}
}
}
|