麻豆传媒视频在线,国产91精品不卡视频,欧美jizz19性欧美,污视频网站在线观看,91涩漫在线观看,伊人发布在线,九色porny丨首页在线,福利视频一区,久久av网址,久久人人视频

當(dāng)前位置:首頁(yè) > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > 用一個(gè)簡(jiǎn)單的例子來(lái)看MIDlet的生命周期原文

用一個(gè)簡(jiǎn)單的例子來(lái)看MIDlet的生命周期原文
2010-01-13 23:30:05  作者:  來(lái)源:

用一個(gè)簡(jiǎn)單的例子來(lái)看MIDlet 的生命周期

想來(lái)估計(jì)也沒(méi)有比網(wǎng)上教程說(shuō)的更清楚了,我這里摘錄的只是文字,從www.j2medev.com來(lái)獲取,更詳細(xì)的資料可以到www.j2medev.com上查看。我將會(huì)以一個(gè)例子跟查看官方的源代碼來(lái)分析它們。

理解J2ME 的體系結(jié)構(gòu)并不像想象的那么容易,我們覺(jué)得讀更多的資料幫助也不大,我們

直接邁向J2ME 開(kāi)發(fā)也許會(huì)對(duì)你理解J2ME 平臺(tái)體系結(jié)構(gòu)這個(gè)重要的概念有所幫助。在MIDP

中定義了一種新的應(yīng)用程序模型MIDlet,它是被Application Management Software(AMS)管理

的。AMS 負(fù)責(zé)MIDlet 的安裝、下載、運(yùn)行和刪除等操作。在被AMS 管理的同時(shí),MIDlet 可

以和應(yīng)用管理軟件通信通知應(yīng)用管理軟件自己狀態(tài)的變化,通常是通過(guò)方法notifyDestroyed()

和notifyPaused()實(shí)現(xiàn)的

MIDlet 有三個(gè)狀態(tài),分別是pause、active 和destroyed。在啟動(dòng)一個(gè)MIDlet 的時(shí)候,應(yīng)用

管理軟件會(huì)首先創(chuàng)建一個(gè)MIDlet 實(shí)例并使得他處于pause 狀態(tài),當(dāng)startApp()方法被調(diào)用的時(shí)候

MIDlet 進(jìn)入active 狀態(tài),也就是所說(shuō)的運(yùn)行狀態(tài)。在active 狀態(tài)調(diào)用destroyApp(boolean

第1 章 J2ME 技術(shù)概述

4

unconditional)或者pauseApp()方法可以使得MIDlet 進(jìn)入destroyed 或者pause 狀態(tài)。值得一提的

是destroyApp(boolean unconditional)方法,事實(shí)上,當(dāng)destroyApp()方法被調(diào)用的時(shí)候,AMS 通

知MIDlet 進(jìn)入destroyed 狀態(tài)。在destroyed 狀態(tài)的MIDlet 必須釋放了所有的資源,并且保存了

數(shù)據(jù)。如果unconditional 為false 的時(shí)候, MIDlet 可以在接到通知后拋出

MIDletStateChangeException 而保持在當(dāng)前狀態(tài),如果設(shè)置為true 的話,則必須立即進(jìn)入destroyed

狀態(tài)。下圖說(shuō)明了MIDlet 狀態(tài)改變情況:

<!--[if !vml]--><!--[endif]-->

 


看看我那個(gè)簡(jiǎn)單的例子
public class HelloWorld extends MIDlet ......{

    public HelloWorld() ......{ 
        System.out.println("這個(gè)是程序的構(gòu)造函數(shù),程序運(yùn)行的時(shí)候首先調(diào)用這個(gè)");
    }

    protected void destroyApp(boolean unconditional)
            throws MIDletStateChangeException ......{
        System.out.println("這個(gè)是程序的destroyed事件,當(dāng)您按下退出時(shí)調(diào)用");
    }

    protected void pauseApp() ......{
        System.out.println("這個(gè)是程序的pause事件,當(dāng)您按下暫停的時(shí)調(diào)用");

    }

    protected void startApp() throws MIDletStateChangeException ......{
        System.out.println("這個(gè)是程序的active事件,程序啟動(dòng)時(shí)候調(diào)用");

    }

}

大家可以運(yùn)行程序中看到這個(gè)程序的運(yùn)行先后順些。基本上就明白了程序的調(diào)用機(jī)制了。
現(xiàn)在大家思考下,j2me的MIDlet是怎么樣運(yùn)行的呢?sun在里面進(jìn)行了什么樣子的限制與手腳呢?
一般的應(yīng)用程序都有個(gè)main入門(mén)。這里沒(méi)有,為什么呢?
我想這個(gè)就是ASM的作用了,sun在后臺(tái)做了很多處理,比如包括,啟動(dòng)容器,啟動(dòng)MIDlet相關(guān)的資源等等。

public static void main(String args[]) ...{
        CommandState state = new CommandState();

    /**//*
     * pass resource strings down to the native system menu and
     * popup choice group methods...
     */
    initSystemLabels();

        /**//*
         * We will try to handle any printing at this level, because
         * displaying JAM command line errors is device specific.
         */
        try ...{
            initializeInternalSecurity();

        /**//* Start a inbound connection watcher thread. */
        new Thread(new PushRegistryImpl()).start();

            restoreCommandState(state);

            // handle any development machine only functions at this level
            switch (state.nextCommand) ...{
            case CommandProcessor.RUN_CLASS:
                runLocalClass(state);
                state.nextCommand = CommandProcessor.EXIT;
                break;

            case CommandProcessor.MANAGE:
                manage(state);
                break;

            case CommandProcessor.LIST:
            case CommandProcessor.STORAGE_NAMES:
                list(state);
                state.nextCommand = CommandProcessor.EXIT;
                break;

            case CommandProcessor.REMOVE:
                if (DEV_STORAGE_NAME.equals(state.suiteStorageName)) ...{
                    removeDevStorage(state);
                    state.nextCommand = CommandProcessor.EXIT;
                    break;
                }

                // fall through
            default:
                CommandProcessor.perform(state);
                if (state.status == CommandProcessor.MIDLET_SUITE_NOT_FOUND) ...{
                    System.out.println("The MIDlet suite was not found.");
                } else if (state.initialCommand == CommandProcessor.INSTALL &&
                        state.status == CommandProcessor.OK) ...{
                    System.out.println("Storage name: " +
                                       state.suiteStorageName);
                }
            }
        } catch (InvalidJadException ije) ...{
            System.out.println("** Error installing suite (" +
                               ije.getReason() + "): " + 
                               messageForInvalidJadException(ije));
        } catch (IOException ioe) ...{
            System.out.println("** Error installing suite: " +
                               ioe.getMessage());
        } catch (ClassNotFoundException ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{

              state.runExceptionMessage =
                    Resource.getString("The application cannot be launched. " +
                    "One of the application classes appears to be missing. " +
                    "This could be due to a mis-named class. Contact the " +
                    "application provider to resolve the issue.");
            } else ...{
                System.out.println("MIDlet class(s) not found: " + 
                                   ex.getMessage());
            }
        } catch (InstantiationException ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{
               state.runExceptionMessage = Resource.getString(
                   "The application cannot be launched. The application " +
                   "may have done an illegal operation. Contact the " +
                   "application provider to resolve the issue.") + " " +
                   ex.getMessage();
            } else ...{
                System.out.println(
                    "MIDlet instance(s) could not be created: " + 
                                 ex.getMessage());
            }
        } catch (IllegalAccessException ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{
                state.runExceptionMessage = Resource.getString(
                   "The application cannot be launched. The application " +
                   "may have done an illegal operation. Contact the " +
                   "application provider to resolve the issue.") + " " +
                   ex.getMessage();
            } else ...{
                System.out.println(
                    "MIDlet class(s) could not be accessed: " + 
                    ex.getMessage());
            }
        } catch (OutOfMemoryError ex) ...{
            if (state.initialCommand == CommandProcessor.MANAGE) ...{
                state.runExceptionMessage = Resource.getString(
                    "The application has unexpectedly quit because it ran " +
                    "out of memory.");
            } else ...{
                System.out.println("The MIDlet has run out of memory");
   &nb

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
成人三级伦理片| 国产亚洲精品久久久久婷婷瑜伽| 91精品国产91久久久久久密臀| 不卡电影免费在线播放一区| 91电影在线观看| 青青久久aⅴ北条麻妃| 成人一级福利| 亚洲日本视频| 色偷偷久久一区二区三区| 欧美一级淫片播放口| 自拍一区在线观看| 首页国产欧美久久| 欧美日韩一区三区四区| 国产一区视频在线播放| 久久久国产精品入口麻豆| 国产二区国产一区在线观看| 日韩精品一区二区三区老鸭窝 | 欧美久久久一区| 黄色毛片视频| 国产精品久久久久久吹潮| 国产一区二区三区蝌蚪| 亚洲福利在线视频| 亚洲视频tv| 亚洲美女黄色| 欧美精品三级在线观看| 一二三中文字幕在线| 日韩精品免费一区二区在线观看 | 免费亚洲视频| 日韩一区二区三免费高清| 日韩av免费观影| 在线精品视频在线观看高清| 日韩欧美中文在线| 激情六月丁香| 欧美r级电影| 欧美亚洲丝袜传媒另类| 亚洲色图图片网| 激情丁香综合| 亚洲白虎美女被爆操| 天堂8中文在线| 国内精品免费**视频| 在线亚洲男人天堂| 韩国精品主播一区二区在线观看 | 亚洲国产精品传媒在线观看| 欧美肥老妇视频| 国产精品麻豆| 中文字幕日韩av资源站| 国产精品国产福利国产秒拍| 全国精品免费看| 午夜精品久久久久影视| 视频在线91| 在线视频精品| 一区二区三区动漫| 久久精品国产精品亚洲毛片| 日韩毛片精品高清免费| 日本福利小视频| 在线视频观看日韩| 亚洲欧美第一页| 欧美激情不卡| 一区二区成人在线视频| 污网站免费在线观看| 日本一不卡视频| 久久国产精品99国产精| 欧美成人基地| 欧美欧美欧美欧美| free性欧美16hd| 国产欧美一区二区精品性色超碰| 国产在线精品自拍| 亚洲激情黄色| 日韩性xxxx爱| 亚洲精华一区二区三区| 欧美在线免费观看亚洲| 中文av资源在线| 91免费国产在线观看| 国产伦精品免费视频| 亚洲高清毛片| 九九热精品在线| 国产一区二区区别| 精品福利一区二区三区免费视频| **欧美日韩在线观看| 一区二区在线观看不卡| 国自产拍在线网站网址视频| 国产一区二区精品在线观看| 国产精品96久久久久久又黄又硬| 激情久久久久| 欧美片一区二区三区| 欧美成人激情| 中文字幕国产亚洲2019| 国产成人久久| 亚洲大胆人体在线| 日韩在线精品强乱中文字幕| 在线观看三级视频欧美| 手机在线理论片| 亚洲在线视频网站| 黄色网址视频在线观看| 国产欧美一区二区三区网站 | 毛片av在线| 国产亚洲欧美激情| 精品无人乱码| 国产欧美日韩三级| 粉嫩一区二区三区国产精品| 久久久久久久久久久久久女国产乱| 超碰在线94| 99久久精品免费| 日本v片在线免费观看| 国产成人精品亚洲777人妖| 黄色大秀av大片| 成人一区二区三区视频在线观看| 婷婷六月激情| 91香蕉视频污在线| 精品资源在线看| 亚洲欧美偷拍另类a∨色屁股| 八戒八戒神马在线电影| 亚洲韩国精品一区| 免费成人在线电影| 欧美视频你懂的| 欧美日本三级| 日韩精品在线免费观看视频| 精品视频久久| 欧美黑人性生活视频| 亚洲免费网址| 国产网站免费观看| 91老司机福利 在线| 欧美激情黑人| 婷婷丁香久久五月婷婷| 成人网ww555视频免费看| 欧美一级黄色录像| 香蕉久久精品日日躁夜夜躁| 色偷偷亚洲男人天堂| 黄色成人在线网站| 国产精品久久久久久久一区探花| 国内不卡的二区三区中文字幕| 国产宾馆自拍| 久久久久国色av免费看影院| 91极品在线| 欧美自拍偷拍一区| 欧美黑人巨大videos精品| 久久精品国产久精国产一老狼| 亚洲国产精品一区| 九色福利视频| 亚洲品质自拍视频| 日韩专区视频网站| 亚洲小视频在线观看| 亚洲美洲欧洲综合国产一区| 能在线观看av网站| 亚洲丝袜自拍清纯另类| 日韩精品麻豆| 亚洲一区二区福利| 午夜在线精品| 欧美白人做受xxxx视频| 亚洲国产视频a| 成人av激情人伦小说| 欧美精品在线看| 精品亚洲欧美一区| 免费黄色电影在线观看| 欧美三级电影网| 国产一区二区观看| 国产精品美女久久| 欧美极品aⅴ影院| 91成人在线| 久久精品国产精品| 国产91在线看| 亚洲最新无码中文字幕久久| 亚洲午夜久久久影院| 蜜桃视频一区二区三区| 在线观看免费网站黄| 在线成人午夜影院| 亚洲网站视频| 毛片免费在线| 91精品在线免费| 亚洲黄色影院| 波多野结衣在线网站| 欧美一区二区性放荡片| 亚洲第一网站| 91在线视频| 亚洲成人在线网| 日本欧美一区二区三区乱码| 18av在线播放| 亚洲日本中文字幕| 国产精品羞羞答答xxdd| www.日韩| 久久久久久久影院| 国产精品久久看| 先锋影音国产精品| 在线播放国产区| 欧美日韩另类国产亚洲欧美一级| 中文字幕免费一区二区| 日韩大片b站免费观看直播| 69堂亚洲精品首页| 日韩精品一二区| 是的av在线| 7777kkkk成人观看| 一区二区久久久久| 国产精品久久久乱弄| 国产粉嫩一区二区三区在线观看| 精品福利在线导航| 国产精品一级黄| 高清一区二区| 69国产精品视频| 这里只有精品视频在线观看| 青椒成人免费视频|