4

令人惊讶的是,终止 midlet 在我的应用程序中不起作用。也许是因为我使用的是线程,但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);
    }

}

4

2 回答 2

2

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

我最好的猜测是,您正在尝试使用的手机(或模拟器)并不能很好地处理它。

试试这个:

  • controller.initialize()抛出异常时,显示一个简单Form的“退出”CommandStringItem错误消息。

  • notifyDestroyed()CommandListener.commandAction()回调中调用。

就线程而言,当用户想要退出您的应用程序时,您可以让它们很好地终止。

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

于 2010-04-26T15:04:36.310 回答
0

您应该调用“notifyDestroyed”方法来退出您的应用程序,而不是“destroyApp”方法。

于 2010-04-26T06:02:19.303 回答