Currently there is a proposal within the MIDP3 Expert Group, to remove, or I should say, deprecate, the MIDlet pauseApp() life-cycle method…

The rationale is that 1) it is a source of confusion for both developers and implementers because it is not consistently implemented across, and thus 2) it is a source of fragmentation.

Sean Sheedy, MIDP3 expert group member, has written a good article describing the proposal to deprecate pauseApp().

I personally am against such deprecation, as the whole idea for the named method is to notify the MIDlet of state changes, within the MIDlet life-cycle state machine. From the MIDP 2.0 specification:


“The application management software wants the MIDlet to significantly reduce the amount of resources it is consuming, so that they may temporarily be used by other functions on the device such as a phone call or running another MIDlet. The AMS will signal this request to the MIDlet by calling the MIDlet.pauseApp method. The MIDlet should then reduce its resource consumption as much as possible.”

The source of fragmentation or confusion is not the method itself, nor the life-cycle state-machine definition, but the issue is that certain implementations are overloading the original intention with inconsistent behaviors… Note that not calling the pauseApp() method at all is a valid behavior, because not always there is a need to reduce the use of resources… Why take away the ability for implementations to be able to notify MIDlets of the need to release resources and go passive? Handset capabilities will continue to increase, but not all platforms are created equal: some will continue to be embedded/resource-constrained platforms.

The method pauseApp() is a life-cycle signal, and it should be treated as such (as described above). No need to deprecate it or any of the other primitive life-cycle methods; a MIDlet enters the active state (startApp), the passive state (pauseApp), and destroyed state (destroyApp). This has nothing to do with Moore's Law and devices becoming more sophisticated; it is more trivial than that. And it is separate from the new MIDP3 system events.



(Note: If you are reading this via a feed reader, you might not see the survey below that is asking for your opinion to take to the MIDP3 expert group. Please go to my blog entry directly to enter your opinion… Thanks!

ceo