|
MIDP3.0 | |||||||||
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 Mobile Information Device 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, 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
a MIDlet
. It can select
which MIDlet
is active at a given time by starting and
destroying them individually. The application management software maintains the
state of the MIDlet
and invokes methods on the
MIDlet
to notify the MIDlet of 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: Some of the methods on this class 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(java.lang.String permission)
Deprecated. The permissions model in this specification does not use named permissions. |
protected abstract void |
destroyApp(boolean unconditional)
Signals the MIDlet to terminate and enter the
Destroyed state. |
java.lang.String |
getAppProperty(java.lang.String key)
Provides a MIDlet with a mechanism to retrieve named
properties from the application management software. |
static java.lang.String[] |
getAppProperty(java.lang.String name,
java.lang.String vendor,
java.lang.String attributeName,
java.lang.String attributeDelimiter)
Provides a mechanism to retrieve and at the same time parse application property values from the application descriptor and the manifest of the MIDlet or bound LIBlets. |
MIDletIdentity |
getMIDletIdentity()
Gets a MIDletIdentity instance associated with this MIDlet, which
can be used to obtain a MIDlet's name, vendor, version, domain, and authorization
state. |
long |
getSplashScreenTime()
Gets the length of time that the application's splash screen has been shown to the user. |
boolean |
isSelectedScreenSaver()
Checks if the MIDlet is the currently selected screen saver. |
void |
notifyDestroyed()
Used by an MIDlet to notify the application management
software that it has entered into the Destroyed state. |
void |
notifyPaused()
Deprecated. The Paused state is deprecated; the application does not need to inform the implementation that it is quiescent. |
protected void |
pauseApp()
Deprecated. Previously calls to pauseApp did not
provide reliable information about system state changes.
To be informed of changes in resources available to the
application, use the listeners in the respective APIs.
For example, to be notified that the application is not in the
foreground, register a
DisplayListener .
The EventManager can be used
to listen for system state changes. |
boolean |
platformRequest(java.lang.String URL)
Requests that the device handle (for example, display or install) the indicated URL. |
void |
resumeRequest()
Deprecated. MIDlets will not be paused and do not need to be resumed. |
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()
java.lang.SecurityException
- unless the application management software is creating the
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.
The use of MIDletStateChangeException
to delay starting a
MIDlet is deprecated.
If MIDletStateChangeException exception is thrown it MUST be
handled as a RuntimeException below.
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.protected void pauseApp()
pauseApp
did not
provide reliable information about system state changes.
To be informed of changes in resources available to the
application, use the listeners in the respective APIs.
For example, to be notified that the application is not in the
foreground, register a
DisplayListener
.
The EventManager
can be used
to listen for system state changes.
pauseApp
method.
The MIDlet is not required to implement the pauseApp
method.
Classes in a MIDlet suite may call the pauseApp
method but the state of the MIDlet MUST NOT be changed.
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.
The use of MIDletStateChangeException
to delay destruction of a
MIDlet is deprecated. The destroyApp
method MUST always
be called with true
to force termination.
The MIDlet
is put in the Destroyed
state regardless of how this method terminates.
If a Runtime exception occurs during destroyApp
then the
exception is ignored and the MIDlet is put into the Destroyed
state.
When an uncaught exception occurs in a thread, the thread MUST be stopped
in accordance with the Java Language Specification
MIDletStateChangeException - is thrown if the MIDlet
wishes to continue
to execute (not enter the Destroyed state).
This exception is ignored and the MIDlet is destroyed.
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()
notifyPaused
in the Active
state MUST cause startApp
to be called immediately.
The MIDlet is expecting a call to startApp
to restore it to the Active state.
Invoking this method MUST NOT have any effect if the MIDlet
is not in the Active state.
A misbehaving MIDlet that continuously calls notifyPaused
may be destroyed.
public final java.lang.String getAppProperty(java.lang.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 and the
manifest. Refer to the
MIDlet Suite Installation for the handling of attributes that
appear in both application descriptor and manifest.
key
- the name of the property
null
is
returned if no value is available for the key.
java.lang.NullPointerException
- is thrown if key is null
.public static final java.lang.String[] getAppProperty(java.lang.String name, java.lang.String vendor, java.lang.String attributeName, java.lang.String attributeDelimiter)
name
- name of the LIBlet or MIDlet to retrieve named property
information from. If both name and vendor are null
, this retrieves information from the MIDlet JAD/Manifestvendor
- the vendor of the LIBlet or MIDletattributeName
- the name of the property to retrieveattributeDelimiter
- The characters in this parameter are the delimiters for
separating the retrieved property value into tokens. Delimiter
characters themselves will not be treated as tokens. If
this is null
, the value is not tokenized.
null
is returned if no value is available for the
attributeName
java.lang.NullPointerException
- is thrown if attributeName is null
.public final void resumeRequest()
public final boolean platformRequest(java.lang.String URL) throws javax.microedition.io.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), 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). The component of the platform that handles the request is responsible for protecting the user from unexpected financial impacts. For example, some 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.
javax.microedition.io.ConnectionNotFoundException
- if the platform cannot handle the URL requested.public final int checkPermission(java.lang.String permission)
checkPermission
throws
an exception.
For MIDP 2.x applications, the implementation must implement
checkPermission
.
Gets the status of the specified legacy named permission. If no API on the device defines the specific permission requested then it must be reported as denied. If the status of the permission is not known because it might require a user interaction then it should be reported as unknown.
permission
- to check if denied, allowed, or unknown.
java.lang.IllegalStateException
- if the MIDlet suite is a MIDP 3.0 MIDlet
suite.public final long getSplashScreenTime()
Gets the length of time that the application's splash screen has been shown to the user.
An application may specify a splash screen in its manifest (see Packaging and the MIDlet package description for more details regarding splash screens).
If the splash screen is still visible, this method returns the elapsed time since when it was first shown. Implementations are required to provide a time value that is accurate to within +/-100 milliseconds, as measured by viewing the physical display of the device. A value of -1 is returned if the splash screen has been hidden or if a valid splash screen image is not specified in the MIDlet's manifest.
public final MIDletIdentity getMIDletIdentity()
Gets a MIDletIdentity
instance associated with this MIDlet, which
can be used to obtain a MIDlet's name, vendor, version, domain, and authorization
state.
public final boolean isSelectedScreenSaver()
SCREENSAVER_MODE_ACTIVATED
system event is sent to all screen saver MIDlets, a MIDlet can use this method to
determine if it is the selected screen saver.
|
MIDP3.0 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |