Java 如何退出/终止/停止j2me midlet?

Java 如何退出/终止/停止j2me midlet?,java,java-me,runtime,midlet,midp,Java,Java Me,Runtime,Midlet,Midp,令人惊讶的是,终止midlet在我的应用程序中不起作用。可能是因为我在使用线程,但是destroyApp()和notifydestromed()是不够的 以以下代码为例: protected void destroyApp(boolean arg0) throws MIDletStateChangeException { System.out.println("destroying"); notifyDestroyed(); } protected void startApp()

令人惊讶的是,终止midlet在我的应用程序中不起作用。可能是因为我在使用线程,但是
destroyApp()
notifydestromed()
是不够的

以以下代码为例:

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
    System.out.println("destroying");
    notifyDestroyed();
}
protected void startApp() throws MIDletStateChangeException {
   try {
        // init modules
        controller.initialize();
    }catch (Exception e) {
        viewer.showAlert("error in startApp() init controller");
        destroyApp(true);
    }

}

您应该调用'notifydestromed'方法来退出应用程序,而不是'destroyApp'方法。

您是从
startApp()内部专门调用
notifydestromed()

我最好的猜测是,你正在试用的手机(或模拟器)处理得不太好

请尝试以下方法:

  • controller.initialize()
    抛出异常时,显示一个简单的
    表单
    ,其中包含一个“退出”
    命令和一条
    StringItem
    错误消息

  • CommandListener.commandAction()
    回调调用
    notifyDistromed()

就线程而言,当用户想要退出应用程序时,由您决定是否让它们很好地终止

大多数MIDP运行时将能够处理一些线程没有很好地终止,但留下系统资源没有正确清理可能会导致问题,特别是在那些试图永远不终止Java虚拟机进程本身的平台上。

很遗憾,我没有在中找到解决方案。