理解J2ME应用模型之MIDlet Model
来源:互联网 发布:mac 提升用户权限 编辑:程序博客网 时间:2024/06/04 18:17
原文地址:http://developers.sun.com/mobility/midp/articles/models/
The MIDlet Model:MIDlet 模型
MIDlet是一种MIDP(Mobile Information Device Profile)应用。和applet相似,MIDlet是一种可管理的应用。不过,它不采用web 浏览器的管理方式,而是采用内置在设备中的有特殊用途的应用管理软件进行管理,常见的有内置在手机、双面打印机的管理程序。应用的外部事件管理也有很重要的意义,因为应用可能随时中断外部的事件。外部事件的影响很小,比如一个运行着的阻止用户接听来电的应用(可以阻止外部来电)。
MIDlet 模型同样被PDAP(Personal Digital Assistant Profile)支持,使模型对PDAlets的支持得到了扩展,对我们而言,这两种模型是对等的(MIDlet、PDAlets)。
The MIDlet Life-Cycle:MIDlet生命周期
一个MIDlet的主类继承javax.microedition.midlet.MIDlet类,主类定义了3个通知生命周期的方法,startApp(), pauseApp(),destroyApp()
在一个MIDlet生命周期中,有如下3中可能的状态:
Paused 停止:一个MIDlet已经被构造,但是处于无效状态
Active 有效:有效运行的状态
Destroyed 销毁:MIDlet已经被终止,等待垃圾回收器清理
注意,MIDlet没有一个类似于applet 已加载的状态,因为MIDlet没有初始化方法,通常来说,MIDlet在开始调用startApp方法时自动初始化。
MIDlet由AMS创建(application-management software),AMS通常以响应用户请求。例如,AMS将列出系统中安装的所有MIDlet供用户选择。
MIDlet初始状态为paused。和applet类似,Midlet在构造函数中可以做少部分或者不做初始工作,因为运行环境还没有被设定好。
在构造函数之后的某个点,AMS激活MIDlet并调用startApp()方法。在做完所有的初始化工作之后,startApp()创建并且显示应用的用户界面。从startApp()返回之后,MIDlet的状态由paused变成active。如果MIDlet由于某些原因不能完成初始化,将抛出javax.microedition.midlet.MIDletStateChangeException,并立刻变为destroyed状态。
每当从active状态转换到paused状态会发生钝化(Deactivation),MIDLet还没有被销毁,不过会尽可能多的释放资源。如果钝化由AMS引发,则会调用pauseApp()方法。如果钝化由MIDlet自身利用运行上下文引发,则不会调用。
每当从active或者paused转换到destroyed状态会发生析构(Destruction)。如果析构是由AMS引发,则会调用destroyApp()方法。传到方法中的boolean型参数将区分析构是无条件进行还是按照设置进行。MIDlet可以抛出一个MIDletStateChangeException,进而阻止按照设置进行的析构。如果析构由自身引发,不会调用destroyApp()方法。
一个基本的MIDlet代码如下:
和BasicMIDlet 类有所区别, BetterMIDlet定义了一个initApp()方法来进行一次性初始化(在第一次调用startApp()时被调用),一个exitApp()方法使资源统一清理。
- 理解J2ME应用模型之MIDlet Model
- J2ME无线开发之MIDlet的部署
- 别了j2me-->系统原理之MIDlet
- J2ME MIDlet开发人员的第一个BlackBerry应用
- J2ME MIDlet开发人员的第一个BlackBerry应用
- J2ME MIDlet开发人员的第一个BlackBerry应用
- 找不见j2me midlet
- J2ME MIDlet签名常见问题问答
- J2me中的Midlet类说明
- j2me-MIDlet程序生命期
- j2me中的MIDlet类说明
- 深入理解MIDlet类
- 深入理解MIDlet类
- model-view模型之QDirModel
- 隐马尔可夫模型 (Hidden Markov Model,HMM)理解
- CSS框模型(Box Model)初学理解
- J2ME学习日记--MIDlet的 生命周期
- 创建新的J2ME MIDlet项目
- 无需工具修改文件创建时间
- PCB设计注意事项
- 巧妙利用博客来推广网站的方法
- linux 0.11 内核学习 -- main.c,调用函数而已。
- webgame
- 理解J2ME应用模型之MIDlet Model
- 白领副业价值超正职 8小时外或能一夜暴富
- 添加系统LOGO
- 【转】strut1 与 struts2 比较
- 游戏界的专业ic板提供商——EMA
- 事情做的顺序考虑
- sql中datediff和dateadd的用法
- XML文件处理过程中的0x1A 错误处理,Hexadecimal value 0x is an invalid character
- 如何通过SQL语句获取分组中的某几条记录