冷面阎罗

低调做人&&高调做事
随笔 - 208, 文章 - 3, 评论 - 593, 引用 - 0
数据加载中……

J2ME程序的奇怪现象

      我周日写的程序,当时运行是没有问题的。今天运行奇了怪出问题。我看了代码没有问题就是出异常。代码如下
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;


public class TestExit extends MIDlet implements CommandListener {
    
private Display display;
    
private Form form;
    
private final static Command cmd_exit=new Command("EXit",Command.EXIT,1);

    
public TestExit() {
        display
=Display.getDisplay(this);
        form
=new Form("Exit");
    }


    
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

    }


    
protected void pauseApp() {

    }


    
protected void startApp() throws MIDletStateChangeException {
        form.addCommand(cmd_exit);
        form.setCommandListener(
this);        
        display.setCurrent(form);

    }


    
public void commandAction(Command c, Displayable d) {
        
if(c==cmd_exit){
            System.out.println(
"in");
            
try {
                destroyApp(
false);
                notifyAll();
            }
 catch (MIDletStateChangeException e) {
                e.printStackTrace();
            }

        }

    }


}

出的错误如下:
java.lang.IllegalMonitorStateException
    at TestExit.commandAction(
+24)
    at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(
+280)
    at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(
+10)
    at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(
+68)
    at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(
+258)

posted on 2007-06-28 19:01 冷面阎罗 阅读(393) 评论(1)  编辑  收藏 所属分类: j2me

评论

# re: J2ME程序的奇怪现象  回复  更多评论   

问题找到是退出时选择函数有问题:
destroyed(false) MIDlet在接到通知后抛出MIDletStateChangeException而保持在当前状态,
destroyApp(false)代表程序是由硬件或非系统关闭掉的
notifyDestroyed通知应用程序管理器,该midlet已进入销毁状态,随时可以回收内存
2007-06-28 19:19 | 冷面阎罗

只有注册用户登录后才能发表评论。


网站导航: