Java 如何退出/终止/停止j2me midlet?
令人惊讶的是,终止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()
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虚拟机进程本身的平台上。很遗憾,我没有在中找到解决方案。