关于unconditional

2008-02-23 09:51:28来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


在active状态调用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet进入destroyed或者pause状态。值得一提的是destroyApp(boolean unconditional)方法,很多开发者对unconditional参数不是很理解,事实上,当destroyApp()方法被调用的时候,AMS通知MIDlet进入destroyed状态。在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。--mingJava的专栏

destroyXlet(boolean unconditional)   该方法通知Xlet结束运行,转入拆除状态。Xlet应当释放所有的资源。参数unconditional由管理器设置,表示是否要无条件地拆除Xlet。如果unconditional是false,Xlet可以抛出一个StateChangeException异常,表示自己不想被拆除——但是,是否接受Xlet请求最终还是由管理器决定。也就是说,虽然Xlet有权合法地抛出StateChangeException异常,但最终决定其命运的还是管理器。如果管理器接受了Xlet要求不拆除的请求,它会给Xlet一些时间,一定的时间后再次调用destory()方法,这次unconditional一般会设置成true。当unconditional参数是true时,管理器将忽略任何XletStateChangeException异常,一旦destoryXlet()返回就直接拆除Xlet。   可以从生命周期方法抛出的异常有两种:XletStateChangeException,未被捕获的RuntimeException或错误。   如果生命周期方法抛出了未处理的RuntimeException或错误,管理器将立即调用Xlet的destoryXlet(true)方法,将Xlet拆除。因此,Xlet应当捕获所有“正常的”(原因已知的)RuntimeException或错误,避免将RuntimeException直接抛给管理器从而导致Xlet被拆除。相对而言,XletStateChangeException可以由Xlet有意地抛出,表示Xlet尚未做好改变状态的准备。 --赛迪网


上一篇: 用eclipse+Hibernate Synchronizer(plugin)开发例子(原创)
下一篇: 15th Annual Jolt Product Excellence & Productivity Awards

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:FreeMarker设计指南(1)

下一篇:Eclipse安装和SWT/JFace项目的配置