[英]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()
引發異常時,顯示帶有單個“退出” Command
和StringItem
錯誤消息的簡單Form
。
從CommandListener.commandAction()
回調調用notifyDestroyed()
。
就線程而言,由用戶決定在用戶要退出您的應用程序時很好地終止線程。
大多數MIDP運行時將能夠處理某些線程,盡管它們不會很好地終止,但是未正確清理系統資源可能會導致問題,尤其是在試圖永不終止Java虛擬機進程本身的平台上。
您應該調用“ notifyDestroyed”方法退出應用程序,而不是“ destroyApp”方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.