MIDlet 应用程序的生命周期

本文详细介绍了J2ME平台MIDlet的应用程序模型及其生命周期管理,包括三种状态:暂停(pause)、激活(active)和销毁(destroyed),并通过示例代码展示了MIDlet从创建到销毁的整个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(转自J2ME开发网的J2ME中文教程)

理解J2ME 的体系结构并不像想象的那么容易,我们觉得读更多的资料帮助也不大,我们直接迈向J2ME 开发也许会对你理解J2ME 平台体系结构这个重要的概念有所帮助。在MIDP中定义了一种新的应用程序模型MIDlet,它是被Application Management Software(AMS)管理的。AMS 负责MIDlet 的安装、下载、运行和删除等操作。在被AMS 管理的同时,MIDlet 可以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifyDestroyed()和notifyPaused()实现的。


MIDlet 有三个状态,分别是pause、active 和destroyed。在启动一个MIDlet 的时候,应用管理软件会首先创建一个MIDlet 实例并使得他处于pause 状态,当startApp()方法被调用的时候MIDlet 进入active 状态,也就是所说的运行状态。在active 状态调用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet 进入destroyed 或者pause 状态。值得一提的是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS 通知MIDlet 进入destroyed 状态。在destroyed 状态的MIDlet 必须释放了所有的资源,并且保存了数据。如果unconditional 为false 的时候, MIDlet 可以在接到通知后抛出MIDletStateChangeException 而保持在当前状态,如果设置为true 的话,则必须立即进入destroyed态。下图说明了MIDlet 状态改变情况:
MIDlet 状态图

 


下面通过一个例子来验证MIDlet 应用程序的生命周期:

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

public class life extends MIDlet {

       private Display display;

      

       // 构造函数

       public life() {

              display = Display.getDisplay(this);

              System.out.println("Constructor");

       }

      

       public void startApp() {

              System.out.println("startApp is called.");

              Form f = new Form("HelloTest");

              display.setCurrent(f);

       }

      

       public void pauseApp() {

              System.out.println("pauseApp is called.");

       }

      

       public void destroyApp(boolean unconditional) {

              System.out.println("destroyApp is called.");

             

       }

}

 

 编译该程序后运行,控制台上就会依次输出:
Constructor
startApp is called.

当我们退出该程序时,控制台就会输出:
destroyApp is called.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值