J2ME has a way to wake up/start up a MIDlet, using Java’s Push Registry. The push registry’s behavior can be simply described in 3 steps:
The MIDlet registers a port along with the protocol name.
The AMS delivers and wakes up the MIDlet when it detects incoming connection to that port. The registration is done statically using the JAD file, or it can perform dynamic registration within the MIDlet.
A SMS or data connection is sent to the specific mobile device using the particular protocol and port where the MIDlet application is registered to listen.
The AMS wakes up the MIDlet application. It is now the MIDlet’s responsibility to process the data accordingly.