关键字:j2me? midlet? jam
和作者联系:xiaozuidaizhi@sina.com
================================================================================
??????? 经过一段时间学习j2me,除了类库受限外,我还觉得midlet和application之间的差别主要表现在对程序的控制上,一个application的控制权完全在于程序员本身,但是,我觉得自己写的midlet程序是不能叫做完整的程序的,因为JAMS(Java Application Management System)也是控制midlet的极为重要的角色,这个角色甚至比你自己还要重要。
??????? 我认为,当一个midlet启动的时候,必然有一个优先级较高的线程跟随着该midlet启动,其主要任务是监听键盘输入。除此而外,JAMS应该还有一个机制来监听midlet的状态的转变,当你调用destroyApp(false);noticeDestroyed();时,这个机制就将当前状态转变为销毁态,当你调用pauseApp();noticePause();时,这个机制就将当前状态转变为暂停态。notice方法正是这个机制和midlet的通信接口!
????? 上面所说的两点,其内容都由JAMS来做,所以说,midlet不完全控制在程序员的手中。
================================================================================
关于这个问题的详细论述请查看作者的另一篇文章:
《敲开MIDlet的脑壳----在MIDlet中另外运行的两个线程》