2010-04-25 73 views
4

令人惊讶的是终止midlet在我的应用程序中不起作用。也许是因为我使用的线程,但destroyApp()notifyDestroyed()是不够的。如何退出/终止/停止j2me midlet?

就拿下面的代码:

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

}

+0

不幸的是,我没有在http://stackoverflow.com/questions/1485943/question-for-terminate-app-in-j2me-but-it-doesnt-mean-quit-from-application找到解决方案。 – hsmit 2010-04-25 12:14:10

回答

0

你应该叫 '的notifyDestroyed' 的方法来退出你的应用程序不是 'destroyApp' 的方法。

2

您特别呼吁从内部startApp()notifyDestroyed()

我最好的猜测是,你在尝试这种手机(或仿真器)不处理的就太多了。

尝试此代替:

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

  • CommandListener.commandAction()回拨呼叫notifyDestroyed()

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

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