2010-04-25 70 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虛擬機進程本身平臺的系統資源不正確的清潔可能會引起問題。