|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.microedition.midlet.MIDlet
public abstract class MIDlet
A MIDLet
is a MID Profile application.
The application must extend this class to allow the
application management software to control the MIDlet and to be
able to retrieve properties from the application descriptor
and notify and request state changes.
The methods of this class allow the application management software to create,
start, pause, and destroy a MIDlet.
A MIDlet
is a set of classes designed to be run and
controlled by the application management software via this interface.
The states allow the application management software to manage
the activities of multiple MIDlets
within
a runtime environment.
It can select which MIDlet
s are active at a given time
by starting and pausing them individually.
The application management software maintains the state of the MIDlet
and
invokes methods on the MIDlet
to change states. The MIDlet
implements these methods to update its internal activities and
resource usage as directed by the application management software.
The MIDlet
can initiate some state changes itself and notifies
the application management software of those state changes
by invoking the appropriate methods.
Note: The methods on this interface signal state changes. The state change is not considered complete until the state change method has returned. It is intended that these methods return quickly.
Constructor Summary | ||
---|---|---|
protected |
MIDlet()
Protected constructor for subclasses. |
Method Summary | ||
---|---|---|
int |
checkPermission(String permission)
Get the status of the specified permission. |
|
protected abstract void |
destroyApp(boolean unconditional)
Signals the MIDlet to terminate and enter the Destroyed state. |
|
String |
getAppProperty(String key)
Provides a MIDlet with a mechanism to retrieve named
properties from the application management software. |
|
void |
notifyDestroyed()
Used by a MIDlet to notify the application management software
that it has entered into the
Destroyed state. |
|
void |
notifyPaused()
Notifies the application management software that the MIDlet does not want to be active and has entered the Paused state. |
|
protected abstract void |
pauseApp()
Signals the MIDlet to stop and enter the Paused state. |
|
boolean |
platformRequest(String URL)
Requests that the device handle (for example, display or install) the indicated URL. |
|
void |
resumeRequest()
Provides a MIDlet with a mechanism to indicate that it is
interested in entering the Active state. |
|
protected abstract void |
startApp()
Signals the MIDlet that it has entered the Active state. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected MIDlet()
Method Detail |
---|
protected abstract void startApp() throws MIDletStateChangeException
MIDlet
that it has entered the Active state.
In the Active state the MIDlet
may hold resources.
The method will only be called when
the MIDlet
is in the Paused state.
Two kinds of failures can prevent the service from starting,
transient and non-transient. For transient failures the
MIDletStateChangeException
exception should be thrown.
For non-transient failures the notifyDestroyed
method should be called.
If a Runtime exception occurs during startApp
the MIDlet will be
destroyed immediately. Its destroyApp
will be called allowing
the MIDlet to cleanup.
MIDletStateChangeException
- is thrown if the MIDlet
cannot start now but might be able to start at a
later time.
MIDletStateChangeException
protected abstract void pauseApp()
MIDlet
to stop and enter the Paused state.
In the Paused state the MIDlet
must release shared
resources
and become quiescent. This method will only be called
called when the MIDlet
is in the Active state.
If a Runtime exception occurs during pauseApp
the MIDlet will be
destroyed immediately. Its destroyApp
will be called allowing
the MIDlet to cleanup.
protected abstract void destroyApp(boolean unconditional) throws MIDletStateChangeException
MIDlet
to terminate and enter the Destroyed state.
In the destroyed state the MIDlet
must release
all resources and save any persistent state. This method may
be called from the Paused or
Active states.
MIDlet
s should
perform any operations required before being terminated, such as
releasing resources or saving preferences or
state.
NOTE: The MIDlet
can request that it not enter the Destroyed
state by throwing a MIDletStateChangeException
. This
is only a valid response if the unconditional
flag is set to false
. If it is true
the MIDlet
is assumed to be in the Destroyed state
regardless of how this method terminates. If it is not an
unconditional request, the MIDlet
can signify that it wishes
to stay in its current state by throwing the MIDletStateChangeException
.
This request may be honored and the destroy()
method called again at a later time.
If a Runtime exception occurs during destroyApp
then
they are ignored and the MIDlet is put into the Destroyed state.
unconditional
- If true when this method is called,
the MIDlet
must cleanup and release all resources.
If false the MIDlet
may throw MIDletStateChangeException
to indicate it does not want to be destroyed at this time.
MIDletStateChangeException
- is thrown if the MIDlet
wishes to continue to execute (Not enter the Destroyed
state).
This exception is ignored if unconditional
is equal to true
.
MIDletStateChangeException
public final void notifyDestroyed()
MIDlet
to notify the application management software
that it has entered into the
Destroyed state. The application management software will not
call the MIDlet's destroyApp
method, and all resources
held by the MIDlet
will be considered eligible for reclamation.
The MIDlet
must have performed the same operations
(clean up, releasing of resources etc.) it would have if the
MIDlet.destroyApp()
had been called.
public final void notifyPaused()
MIDlet
is destroyed, or if it has not
yet been started.
It may be invoked by the MIDlet
when it is in the Active state.
If a MIDlet
calls notifyPaused()
, in the
future its startApp()
method may be called make
it active again, or its destroyApp()
method may be
called to request it to destroy itself.
public final String getAppProperty(String key)
MIDlet
with a mechanism to retrieve named
properties from the application management software.
The properties are retrieved from the combination of
the application descriptor file and the manifest.
If an attributes in the descriptor has the same name
as an attribute in the manifest the value from the
descriptor is used and the value from the manifest
is ignored.
key
- the name of the property
null
is returned if no value is available for the key.
NullPointerException
- is thrown
if key is null
.public final void resumeRequest()
MIDlet
with a mechanism to indicate that it is
interested in entering the Active state. Calls to
this method can be used by the application management software to determine which
applications to move to the Active state.
When the application management software decides to activate this
application it will call the startApp
method.
The application is generally in the Paused state when this is called. Even in the paused state the application may handle asynchronous events such as timers or callbacks.
public final boolean platformRequest(String URL) throws ConnectionNotFoundException
Requests that the device handle (for example, display or install) the indicated URL.
If the platform has the appropriate capabilities and resources available, it SHOULD bring the appropriate application to the foreground and let the user interact with the content, while keeping the MIDlet suite running in the background. If the platform does not have appropriate capabilities or resources available, it MAY wait to handle the URL request until after the MIDlet suite exits. In this case, when the requesting MIDlet suite exits, the platform MUST then bring the appropriate application (if one exists) to the foreground to let the user interact with the content.
This is a non-blocking method. In addition, this method does NOT queue multiple requests. On platforms where the MIDlet suite must exit before the request is handled, the platform MUST handle only the last request made. On platforms where the MIDlet suite and the request can be handled concurrently, each request that the MIDlet suite makes MUST be passed to the platform software for handling in a timely fashion.
If the URL specified refers to a MIDlet suite (either an Application Descriptor or a JAR file), the application handling the request MUST interpret it as a request to install the named package. In this case, the platform's normal MIDlet suite installation process SHOULD be used, and the user MUST be allowed to control the process (including cancelling the download and/or installation). If the MIDlet suite being installed is an update of the currently running MIDlet suite, the platform MUST first stop the currently running MIDlet suite before performing the update. On some platforms, the currently running MIDlet suite MAY need to be stopped before any installations can occur.
If the URL specified is of the form
tel:<number>
, as specified in RFC2806, then the
platform MUST interpret this as a request to initiate a voice
call. The request MUST be passed to the "phone"
application to handle if one is present in the platform. The
"phone" application, if present, MUST be able to set
up local and global phone calls and also perform DTMF post
dialing. Not all elements of RFC2806 need be implemented,
especially the area-specifier or any other requirement on the
terminal to know its context. The isdn-subaddress,
service-provider and future-extension may also be
ignored. Pauses during dialing are not relevant in some
telephony services.
Devices MAY choose to support additional URL schemes beyond the requirements listed above.
Many of the ways this method will be used could have a financial impact to the user (e.g. transferring data through a wireless network, or initiating a voice call). Therefore the platform MUST ask the user to explicitly acknowlege each request before the action is taken. Implementation freedoms are possible so that a pleasant user experience is retained. For example, some platforms may put up a dialog for each request asking the user for permission, while other platforms may launch the appropriate application and populate the URL or phone number fields, but not take the action until the user explicitly clicks the load or dial buttons.
URL
- The URL for the platform to load. An empty string
(not null) cancels any pending requests.
ConnectionNotFoundException
- if
the platform cannot handle the URL requested.public final int checkPermission(String permission)
permission
- to check if denied, allowed, or unknown.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal