簡體   English   中英

如何退出/終止/停止J2ME Midlet?

[英]How to quit / terminate / stop a 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() startApp()

我最好的猜測是,您嘗試使用的手機(或仿真器)處理得不太好。

嘗試以下方法:

  • controller.initialize()引發異常時,顯示帶有單個“退出” CommandStringItem錯誤消息的簡單Form

  • CommandListener.commandAction()回調調用notifyDestroyed()

就線程而言,由用戶決定在用戶​​要退出您的應用程序時很好地終止線程。

大多數MIDP運行時將能夠處理某些線程,盡管它們不會很好地終止,但是未正確清理系統資源可能會導致問題,尤其是在試圖永不終止Java虛擬機進程本身的平台上。

您應該調用“ notifyDestroyed”方法退出應用程序,而不是“ destroyApp”方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM