注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

郁夫的博客

我爱你们,只是你们不知道!

 
 
 

日志

 
 
 
 

请问notifyDestroyed()是做什么用的?--转  

2008-01-24 21:55:37|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 本人刚开始学习J2ME,不理解notifyDestroyed的作用,在网上也没搜到解释,所以想请这里的各位兄弟帮帮忙,先谢谢了!


推出程序用的
只有MIDLET有


通知AMS关闭MIDlet


notifyDestroyed
public final void notifyDestroyed()Used by an MIDlet to notify theapplication management software that it has entered into theDestroyed state. The application management software will not callthe MIDlet's destroyApp method, and all resources held by theMIDlet will be considered eligible for reclamation. The MIDlet musthave performed the same operations (clean up, releasing ofresources etc.) it would have if the MIDlet.destroyApp() had beencalled.



关闭MIDlet必用的


notifyDestroyed通知应用程序管理器,该midlet已进入销毁状态,随时可以回收内存
 
 
 

notifydestroyed()notifypause()

这是MIDlet的一种机制。Application ManagementSystem (AMS)通过startApp pauseAppdestroyApp控制MIDlet的状态,当然MIDlet也可以通过notifyPausednotifyDestroyedresumeRequest通知AMS来改变状态。
    
MIDlet希望暂停运行时,它在释放相应的资源后调用notifyPausedAMS收到通知后会确认MIDlet将进入PAUSED状态,但这时AMS不会再调用pauseApp。而当MIDlet希望结束运行时,它在做完相应的清理工作后调用notifyDestroyedAMS收到通知后确认MIDlet将进入DESTROYED状态并将MIDlet的状态设为DESTROYED,但这时AMS也不会再调用destroyApp
    
MIDlet希望从等待状态重新被激活可以使用resumeRequestAMS收到通知后如果AMS能满足这种请求(也就是此时MIDlet确实是PAUSED,而非ACTIVE)它会调用startApp重新激活MIDlet

也就是说在notifyPausednotifyDestroyed之前必须做相应的释放和清理工作,而AMS不必用pauseAppdestroyApp重复这些操作了,直接改变MIDlet状态即可。而resumeRequest不一样,必须让AMSstartApp重新激活MIDlet,因为有些工作只有AMS能做到。

在退出应用程序的代码中经常看到如下方法:

Publicvoid exitMIDlet() {

    Try{

         destroyApp(false);

         notifyDestroyed();

        }catch(MIDletStateChangeExceptionex) {

            Ex.printStackTrace();

        }

}

如果exitMIDlet()方法中只是调用notifyDestroyed()方法,那么destroyApp()方法就不会被AMS方法自动调用,这样本来由destroyApp()方法完成的销毁和状态保存工作都没有被完成。


  评论这张
 
阅读(1001)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017