java – 如何退出/终止/停止j2me midlet?

令人惊讶地终止midlet在我的应用程序中不起作用.也许是因为我正在使用Threads,但destroyApp()和notifyDestroyed()是不够的.

以下面的代码为例:

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);
    }

}

最佳答案 您专门从startApp()内部调用notifyDestroyed().

我最好的猜测是你尝试这个的手机(或仿真器)不能很好地处理它.

试试这个:

>当controller.initialize()抛出异常时,显示一个带有单个“Exit”命令和StringItem错误消息的简单Form.
>从CommandListener.commandAction()回调中调用notifyDestroyed().

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

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

点赞